initial attempt: error 😐😐

This commit is contained in:
Kiara Grouwstra 2021-12-29 20:54:15 +01:00
commit fbff7ef994
33 changed files with 225 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
env
__pycache__

8
LICENSE Normal file
View File

@ -0,0 +1,8 @@
Copyright (C) 2021 BIJ1
This license applies only to the code in this repository.
Images and other assets are explicitly excluded.
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

12
Makefile Normal file
View File

@ -0,0 +1,12 @@
ACTIVATE =. ./env/bin/activate
# Target to create virtual env. No phony as we want to check whether it exists or not.
venv:
@python3 -m venv ./env
.PHONY: install
install: venv
@$(ACTIVATE); pip install --upgrade pip; pip install -r requirements.txt
diagram:
@$(ACTIVATE); python diagram.py

15
README.md Normal file
View File

@ -0,0 +1,15 @@
# BIJ1 Landscape
This repo offers a diagram to show the BIJ1 IT landscape and how its components connect.
## requirements
- [GraphViz](https://graphviz.gitlab.io/download/)
- [Make](https://www.gnu.org/software/make/)
## usage
```bash
make install
make diagram
```

157
diagram.py Normal file
View File

@ -0,0 +1,157 @@
from diagrams import Diagram, Cluster, Edge
from diagrams.custom import Custom
from diagrams.saas.chat import Discord
from diagrams.saas.filesharing import Nextcloud
from diagrams.saas.social import Facebook, Twitter
from diagrams.programming.language import Python, Nodejs, Php
from diagrams.programming.framework import Rails
from diagrams.elastic.elasticsearch import Beats, Elasticsearch, Kibana, Logstash
wordpress = "./resources/wordpress.png"
wings = "./resources/wings.jpg"
trello = "./resources/trello.jpg"
gitlab = "./resources/gitlab.png"
github = "./resources/github.png"
mailchimp = "./resources/mailchimp.png"
nginx = "./resources/nginx.webp"
www = "./resources/www.png"
insta = "./resources/instagram.jpg"
with Diagram("BIJ1 IT landscape"):
with Cluster("Socials"):
fb = Facebook()
tw = Twitter()
insta = Custom("Instagram", insta)
with Cluster("Local socials"):
local_fb = Facebook()
local_tw = Twitter()
local_insta = Custom("Instagram", insta)
with Cluster("Hosting"):
transip = Custom("TransIP", "./resources/transip.png")
greenhost = Custom("GreenHost", "./resources/greenhost.png")
hetzner = Custom("Hetzner", "./resources/hetzner.jpg")
wpengine = Custom("WpEngine", "./resources/wpengine.jpg")
email = Custom("transip.email", "./resources/email.png")
email >> transip
with Cluster("Code repositories"):
gitlab = Custom("gitlab.com/bij1", gitlab)
github = Custom("github.com/bij1", github)
github_data = Custom("github.com/bij1data", github)
github >> gitlab
with Cluster("Roadmap"):
trello_campaign = Custom("Trello Campagne Tweede Kamer verkiezingen", trello)
trello_it = Custom("Trello BIJ1 ICT", trello)
gitlab_issues = Custom("Gitlab issues", gitlab)
with Cluster("Aanmeldingen Kanban"):
trello_vrijwilligers = Custom("Trello board NieuweBIJ1ers", trello)
localize_trello = Python("localize-trello")
with Cluster("Lokale aanmeldingen") as local_aanmeldingen:
local_trello = Custom("trello by region", trello)
trello_vrijwilligers >> localize_trello >> local_aanmeldingen
trello_campaign >> trello_vrijwilligers
with Cluster("Nieuwsbrieven"):
mailchimp_central = Custom("Landelijke MailChimp", mailchimp)
with Cluster("Lokale nieuwsbrieven"):
mailchimp_central = Custom("Lokale MailChimps", mailchimp)
with Cluster("ELK") as elk:
logstash = Logstash()
beats = Beats()
elasticsearch = Elasticsearch()
kibana = Kibana()
logstash >> beats
logstash >> elasticsearch
logstash >> kibana
elk >> greenhost
with Cluster("Meetings"):
zoom = Custom("Zoom", "./resources/zoom.jpg")
jitsi = Custom("meet.bij1.org", "./resources/jitsi.jpg")
bbb = Custom("bigbluebutton.bij1.org", "./resources/bbb.png")
bbb >> hetzner
ingang = Rails("vergadering.bij1.org/ingang/")
flowmailer = Custom("FlowMailer", "./resources/flowmailer.svg")
helios = Custom("stemmen.bij1.org", "./resources/helios.jpg")
coturn = Custom("turn.bij1.org", "./resources/webrtc.jpg")
coturn >> bbb >> ingang >> helios
ingang >> flowmailer
jitsi >> greenhost
ingang >> greenhost
helios >> greenhost
coturn >> greenhost
with Cluster("Websites"):
proxy = Custom("proxy.bij1.net", nginx)
bij1_wp = Custom("bij1.org", wordpress)
staging_wp = Custom("staging-wp.bij1.net", wordpress)
doemee_wp = Custom("doemee.bij1.org", wordpress)
doemee_wp >> wpengine
radicaal = Custom("radicaal.bij1.org", "./resources/squarespace.jpg")
shop = Custom("shop.bij1.org", "./resources/woocommerce.jpg")
proxy >> bij1_wp
proxy >> greenhost
bij1_wp >> greenhost
staging_wp >> greenhost
shop >> bij1_wp
with Cluster("Static") as statics:
static = Custom("static.bij1.net", nginx)
links = Custom("links.bij1.org", www)
# actie = Custom("actie.bij1.org", www)
# iktelookmee = Custom("iktelookmee.bij1.org", www)
# wijzijn = Custom("wijzijn.bij1.org", www)
static >> links
# static >> actie
# static >> iktelookmee
# static >> wijzijn
statics >> greenhost
with Cluster("Afdelingssites"):
wingspress = Nodejs("WingsPress")
wings_adam = Custom("amsterdam.bij1.org", wings)
wings_roffa = Custom("rotterdam.bij1.org", wings)
wings_denhaag = Custom("denhaag.bij1.org", wings)
wings_utrecht = Custom("utrecht.bij1.org", wings)
wings_hilversum = Custom("hilversum.bij1.org", wings)
wp_adam = Custom("amsterdam.wp-staging.bij1.net", wordpress)
wp_almere = Custom("almere.wp-staging.bij1.net", wordpress)
wings_adam >> wingspress >> wp_adam
zapier = Custom("Zapier", "./resources/zapier.png")
doemee_wp >> zapier
airtable = Custom("Zapier", "./resources/airtable.png")
zapier >> airtable
with Cluster("Intranet"):
# kom = Custom("kom.bij1.org", www)
# kom >> transip
# keycloak = Custom("jij.bij1.org", "./resources/keycloak.jpg")
cloud = Nextcloud("cloud.bij1.org")
cloud >> greenhost
# kom >> keycloak
# keycloak >> cloud
with Cluster("CRM") as crm:
civi = Custom("CiviCRM", "./resources/civicrm.jpg")
bij1_wp >> crm
bij1algemeen = Php("bij1algemeen")
bij1rules = Php("bij1rules")
bij1migratie = Php("bij1migratie")
airtable >> bij1migratie >> civi
mollie = Custom("Mollie", "./resources/mollie.jpg")
export_mollie = Nodejs("export-mollie")
mollie >> export_mollie >> bij1migratie

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
diagrams==0.20.0

BIN
resources/airtable.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
resources/bbb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
resources/civicrm.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
resources/email.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

29
resources/flowmailer.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 22 KiB

BIN
resources/github.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
resources/gitlab.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
resources/greenhost.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
resources/helios.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
resources/hetzner.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
resources/instagram.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
resources/jitsi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
resources/keycloak.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
resources/mailchimp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
resources/mollie.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

BIN
resources/nginx.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
resources/squarespace.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
resources/transip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
resources/trello.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
resources/webrtc.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

1
resources/wings.svg Normal file
View File

@ -0,0 +1 @@
<svg width="1100" height="750" viewBox="0 0 1100 750" xmlns="http://www.w3.org/2000/svg"><g fill="#3D7AEB"><path d="M780.3 224.223L651.478 448.235l-61.98-110.776L746.27 69.137S674.57.209 551.823.209 357.374 66.675 357.374 66.675l126.391 217.859 37.675-61.543L444.876 87.6s34.028-32.002 106.946-32.002 108.163 30.771 108.163 30.771L454.598 448.235S337.928 231.608 282.025 174.99C226.122 118.37.075 129.448.075 129.448l234.553 409.87s35.244 88.62 109.377 88.62c74.134 0 102.086-46.772 102.086-46.772L550 402.694l66.235 107.083-64.412 107.082-35.244-49.233-30.383 61.541 65.627 120.623 99.655-172.318s21.876 54.157 97.224 54.157 102.086-64.003 102.086-64.003l249.136-435.717C828.912 103.6 780.3 224.223 780.3 224.223zM389.58 544.548c-48.308 35.08-84.464-10.154-84.464-10.154l-196.88-339.712c119.709-8.308 171.966 85.85 171.966 85.85l136.722 234.476-27.344 29.54zm411.38-10.154s-36.155 45.233-84.464 10.154l-27.344-29.54 136.722-234.474s52.258-94.16 171.965-85.851l-196.88 339.71z"/><path d="M780.3 224.223L651.478 448.235l-61.98-110.776L746.27 69.137S674.57.209 551.823.209 357.374 66.675 357.374 66.675l126.391 217.859 37.675-61.543L444.876 87.6s34.028-32.002 106.946-32.002 108.163 30.771 108.163 30.771L454.598 448.235S337.928 231.608 282.025 174.99C226.122 118.37.075 129.448.075 129.448l234.553 409.87s35.244 88.62 109.377 88.62c74.134 0 102.086-46.772 102.086-46.772L550 402.694l66.235 107.083-64.412 107.082-35.244-49.233-30.383 61.541 65.627 120.623 99.655-172.318s21.876 54.157 97.224 54.157 102.086-64.003 102.086-64.003l249.136-435.717C828.912 103.6 780.3 224.223 780.3 224.223zM389.58 544.548c-48.308 35.08-84.464-10.154-84.464-10.154l-196.88-339.712c119.709-8.308 171.966 85.85 171.966 85.85l136.722 234.476-27.344 29.54zm411.38-10.154s-36.155 45.233-84.464 10.154l-27.344-29.54 136.722-234.474s52.258-94.16 171.965-85.851l-196.88 339.71z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
resources/woocommerce.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
resources/wordpress.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
resources/wpengine.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
resources/www.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
resources/zapier.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
resources/zoom.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB