158 lines
5.9 KiB
Python
158 lines
5.9 KiB
Python
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
|