commit fbff7ef99441e5129dcbb78cf83b46f090c98a17 Author: Kiara Grouwstra Date: Wed Dec 29 20:54:15 2021 +0100 initial attempt: error 😐😐 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..151121e --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +env +__pycache__ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a4116b2 --- /dev/null +++ b/LICENSE @@ -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. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5603522 --- /dev/null +++ b/Makefile @@ -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 diff --git a/README.md b/README.md new file mode 100644 index 0000000..2c9fb65 --- /dev/null +++ b/README.md @@ -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 +``` diff --git a/diagram.py b/diagram.py new file mode 100644 index 0000000..ddbdfbf --- /dev/null +++ b/diagram.py @@ -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 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..885449d --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +diagrams==0.20.0 diff --git a/resources/airtable.png b/resources/airtable.png new file mode 100644 index 0000000..8bfdec2 Binary files /dev/null and b/resources/airtable.png differ diff --git a/resources/bbb.png b/resources/bbb.png new file mode 100644 index 0000000..d8ea9a9 Binary files /dev/null and b/resources/bbb.png differ diff --git a/resources/civicrm.jpg b/resources/civicrm.jpg new file mode 100644 index 0000000..4cb948f Binary files /dev/null and b/resources/civicrm.jpg differ diff --git a/resources/email.png b/resources/email.png new file mode 100644 index 0000000..a3e4ca3 Binary files /dev/null and b/resources/email.png differ diff --git a/resources/flowmailer.svg b/resources/flowmailer.svg new file mode 100644 index 0000000..7bcefa8 --- /dev/null +++ b/resources/flowmailer.svg @@ -0,0 +1,29 @@ + + + + logo_flowmailer + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/github.png b/resources/github.png new file mode 100644 index 0000000..d5dacf8 Binary files /dev/null and b/resources/github.png differ diff --git a/resources/gitlab.png b/resources/gitlab.png new file mode 100644 index 0000000..1e8f7ad Binary files /dev/null and b/resources/gitlab.png differ diff --git a/resources/greenhost.png b/resources/greenhost.png new file mode 100644 index 0000000..249c79b Binary files /dev/null and b/resources/greenhost.png differ diff --git a/resources/helios.jpg b/resources/helios.jpg new file mode 100644 index 0000000..16417a4 Binary files /dev/null and b/resources/helios.jpg differ diff --git a/resources/hetzner.jpg b/resources/hetzner.jpg new file mode 100644 index 0000000..9bb97c9 Binary files /dev/null and b/resources/hetzner.jpg differ diff --git a/resources/instagram.jpg b/resources/instagram.jpg new file mode 100644 index 0000000..2cfeca5 Binary files /dev/null and b/resources/instagram.jpg differ diff --git a/resources/jitsi.jpg b/resources/jitsi.jpg new file mode 100644 index 0000000..51599bf Binary files /dev/null and b/resources/jitsi.jpg differ diff --git a/resources/keycloak.jpg b/resources/keycloak.jpg new file mode 100644 index 0000000..587324d Binary files /dev/null and b/resources/keycloak.jpg differ diff --git a/resources/mailchimp.png b/resources/mailchimp.png new file mode 100644 index 0000000..c729290 Binary files /dev/null and b/resources/mailchimp.png differ diff --git a/resources/mollie.jpg b/resources/mollie.jpg new file mode 100644 index 0000000..2453cdd Binary files /dev/null and b/resources/mollie.jpg differ diff --git a/resources/nginx.webp b/resources/nginx.webp new file mode 100644 index 0000000..e79af29 Binary files /dev/null and b/resources/nginx.webp differ diff --git a/resources/squarespace.jpg b/resources/squarespace.jpg new file mode 100644 index 0000000..82806bc Binary files /dev/null and b/resources/squarespace.jpg differ diff --git a/resources/transip.png b/resources/transip.png new file mode 100644 index 0000000..34b170d Binary files /dev/null and b/resources/transip.png differ diff --git a/resources/trello.jpg b/resources/trello.jpg new file mode 100644 index 0000000..5d5a029 Binary files /dev/null and b/resources/trello.jpg differ diff --git a/resources/webrtc.jpg b/resources/webrtc.jpg new file mode 100644 index 0000000..d5f4853 Binary files /dev/null and b/resources/webrtc.jpg differ diff --git a/resources/wings.svg b/resources/wings.svg new file mode 100644 index 0000000..0f804d8 --- /dev/null +++ b/resources/wings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/woocommerce.jpg b/resources/woocommerce.jpg new file mode 100644 index 0000000..2014419 Binary files /dev/null and b/resources/woocommerce.jpg differ diff --git a/resources/wordpress.png b/resources/wordpress.png new file mode 100644 index 0000000..690587b Binary files /dev/null and b/resources/wordpress.png differ diff --git a/resources/wpengine.jpg b/resources/wpengine.jpg new file mode 100644 index 0000000..3b26c34 Binary files /dev/null and b/resources/wpengine.jpg differ diff --git a/resources/www.png b/resources/www.png new file mode 100644 index 0000000..3fa69a7 Binary files /dev/null and b/resources/www.png differ diff --git a/resources/zapier.png b/resources/zapier.png new file mode 100644 index 0000000..7ab0748 Binary files /dev/null and b/resources/zapier.png differ diff --git a/resources/zoom.jpg b/resources/zoom.jpg new file mode 100644 index 0000000..a97c89a Binary files /dev/null and b/resources/zoom.jpg differ