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.png" trello = "./resources/trello.png" gitlab_logo = "./resources/gitlab.png" github_logo = "./resources/github.svg" mailchimp = "./resources/mailchimp.png" nginx = "./resources/nginx.png" www = "./resources/www.png" instagram = "./resources/instagram.png" tiktok_logo = "./resources/tiktok.svg" youtube_logo = "./resources/youtube.png" linkedin_logo = "./resources/linkedin.svg" heroku = "./resources/heroku.png" transip_logo = "./resources/transip.png" greenhost_logo = "./resources/greenhost.png" email_logo = "./resources/email.png" telegram_logo = "./resources/telegram.png" antivirus_logo = "./resources/antivirus.png" with Diagram("BIJ1 IT landscape"): with Cluster("Socials"): with Cluster("BIJ1 socials landelijk"): fb = Facebook("facebook.com/www.bij1.org") tw = Twitter("twitter.com/PolitiekBIJ1") insta = Custom("instagram.com/politiek_bij1", instagram) yt = Custom("youtube.com/c/BIJ1Politiek", youtube_logo) vimeo = Custom("vimeo.com/bij1", "./resources/vimeo.svg") linkedin = Custom("linkedin.com/company/bij1", linkedin_logo) with Cluster("BIJ1 local socials"): local_fb = Facebook("Local FBs") local_tw = Twitter("Local Twitters") local_insta = Custom("Local Instagrams", instagram) local_yt = Custom("Local Youtubes", youtube_logo) local_li = Custom("Local LinkedIns", linkedin_logo) with Cluster("Radicaal socials"): fb_radicaal = Facebook("facebook.com/pjo.radicaal") tw_radicaal = Twitter("twitter.com/pjo_radicaal") insta_radicaal = Custom("instagram.com/pjo_radicaal", instagram) tiktok_radicaal = Custom("tiktok.com/@pjo_radicaal", tiktok_logo) with Cluster("Hosting"): transip = Custom("TransIP BIJ1", transip_logo) transip_kennis = Custom("TransIP Audre Lorde", transip_logo) transip_intl = Custom("TransIP Clemencia Redmond", transip_logo) greenhost = Custom("GreenHost BIJ1", greenhost_logo) greenhost_pjo = Custom("GreenHost Radicaal", greenhost_logo) hetzner = Custom("Hetzner", "./resources/hetzner.png") wpengine = Custom("WpEngine", "./resources/wpengine.jpg") # servercow = Custom("ServerCow", "./resources/servercow.svg") email = Custom("transip.email (BIJ1)", email_logo) # mailcow = Custom("MailCow", "./resources/mailcow.svg") email_intl = Custom("transip.email (Audre Lorde)", email_logo) email_kennis = Custom("transip.email (Clemencia Redmond)", email_logo) email_pjo = Custom("webmail.greenhost.nl (Radicaal)", email_logo) email >> transip email_intl >> transip_intl email_kennis >> transip_kennis email_pjo >> greenhost_pjo # mailcow >> servercow heroku_flyer = Custom("bij1-data-dashboard.herokuapp.com", heroku) heroku_flyer_demo = Custom("bij1-flyer-app.herokuapp.com", heroku) with Cluster("Web domains"): bij1_org = Custom("bij1.org", www) bij1_org >> transip bij1_org >> email bij1_net = Custom("bij1.net", www) bij1_net >> greenhost radicaal_org = Custom("radicaal.org", www) radicaal_org >> greenhost_pjo radicaal_org >> email_pjo clemenciaredmond_org = Custom("clemenciaredmond.org", www) clemenciaredmond_org >> transip_kennis clemenciaredmond_org >> email_kennis with Cluster("Code repositories"): gitlab = Custom("gitlab.com/bij1", gitlab_logo) github = Custom("github.com/bij1", github_logo) github_data = Custom("github.com/bij1data", github_logo) gitea = Custom("code.bij1.org", "./resources/gitea.svg") woodpecker = Custom("build.bij1.org", "./resources/woodpecker.png") github >> gitlab >> gitea gitea >> woodpecker 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_logo) github_projects = Custom("BIJ1 Data kanban", github_logo) email >> trello_campaign github_projects >> github_data with Cluster("Aanmeldingen Kanban"): trello_vrijwilligers = Custom("Trello board NieuweBIJ1ers", trello) localize_trello = Python("localize-trello") with Cluster("Lokale aanmeldingen"): local_trello = Custom("trello by region", trello) trello_vrijwilligers >> localize_trello >> local_trello 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"): # logstash = Logstash("Logstash") # beats = Beats("Beats") # elasticsearch = Elasticsearch("Elasticsearch") # kibana = Kibana("Kibana") # logstash >> beats # logstash >> elasticsearch # logstash >> kibana # greenhost >> logstash # greenhost >> beats # greenhost >> elasticsearch # greenhost >> kibana with Cluster("Meetings"): zoom = Custom("Zoom", "./resources/zoom.svg") jitsi = Custom("meet.bij1.org", "./resources/jitsi.svg") bbb = Custom("bigbluebutton.bij1.org", "./resources/bigbluebutton.svg") bbb >> hetzner ingang = Rails("vergadering.bij1.org/ingang/") flowmailer = Custom("FlowMailer", "./resources/flowmailer.svg") helios = Custom("stemmen.bij1.org", "./resources/helios.png") coturn = Custom("turn.bij1.org", "./resources/webrtc.png") 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 doemee_wp >> trello_vrijwilligers radicaal = Custom("radicaal.bij1.org", "./resources/squarespace.png") shop = Custom("shop.bij1.org", "./resources/woocommerce.svg") wings_bij1 = Custom("Wings", wings) proxy >> bij1_wp proxy >> greenhost bij1_wp >> greenhost staging_wp >> greenhost shop >> bij1_wp bij1_wp >> wings_bij1 # donations with Cluster("Static"): 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 static >> greenhost with Cluster("Afdelingssites"): wings_amsterdam = Custom("amsterdam.bij1.org", wings) wings_rotterdam = 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_almere = Custom("almerebij1.org", wordpress) wp_amsterdam_staging = Custom("amsterdam.wp-staging.bij1.net", wordpress) wp_amersfoort_staging = Custom("amersfoort.wp-staging.bij1.net", wordpress) wp_almere_staging = Custom("almere.wp-staging.bij1.net", wordpress) wp_rotterdam_staging = Custom("rotterdam.wp-staging.bij1.net", wordpress) wp_hilversum_staging = Custom("hilversum.wp-staging.bij1.net", wordpress) zapier = Custom("Zapier", "./resources/zapier.png") doemee_wp >> zapier airtable = Custom("Airtable", "./resources/airtable.png") zapier >> airtable with Cluster("Intranet"): # kom = Custom("kom.bij1.org", www) # kom >> transip # keycloak = Custom("jij.bij1.org", "./resources/keycloak.svg") cloud = Nextcloud("cloud.bij1.org") cloud >> greenhost # kom >> keycloak # keycloak >> cloud telegram_2fa = Custom("@bij1cloudbot", telegram_logo) telegram_2fa >> cloud clam_av = Custom("ClamAV", antivirus_logo) clam_av >> cloud # what shouldn't be our cloud but currently is 😩 gdrive = Custom("Google Drive", "./resources/google-drive.png") mega = Custom("Mega", "./resources/mega.svg") with Cluster("CRM"): civi = Custom("CiviCRM", "./resources/civicrm.svg") bij1algemeen = Php("bij1algemeen") bij1rules = Php("bij1rules") bij1migratie = Php("bij1migratie") bij1_wp >> civi airtable >> bij1migratie >> civi with Cluster("chat"): with Cluster("Discord"): discord_bij1 = Discord("BIJ1 Discord (unofficial)") discord_radicaal = Discord("Radicaal Discord") with Cluster("Local Discords"): discords_local = Discord("Local BIJ1 Discords") fb_group = Facebook("Facebook groep actieve leden") with Cluster("Signal"): signal = Custom("signal groups (many)", "./resources/signal.png") mollie = Custom("Mollie", "./resources/mollie.jpg") export_mollie = Nodejs("export-mollie") mollie >> export_mollie >> bij1migratie terraform = Custom("Terraform", "./resources/terraform.png") terraform_cloud = Custom("Terraform Cloud", "./resources/terraform-cloud.png") terraform >> terraform_cloud canva = Custom("Canva", "./resources/canva.png") snelstart = Custom("snelstart", "./resources/snelstart.svg") with Cluster("link collections"): linktree = Custom("Linktree", "./resources/linktree.png") linktree >> local_insta linkbee = Custom("links.bij1.org", "./resources/link.png") linkbee >> insta