python-support-infra/README.md

61 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

# Complete Infrastructure for DTU Python Support
**Very heavily WIP**
This project describes and implements the complete infrastructure for DTUs Python Support group.
The repository provides the following user-facing services:
- timesigned.com: Modern, multilingual guide to using Python at DTU.
- SSG with [mdbook](https://rust-lang.github.io/mdBook/) w/plugins.
- chat.timesigned.com: Modern asynchronous communication and support channel for everybody using Python at DTU.
- Instance of [Zulip](https://zulip.com/).
- git.timesigned.com: Lightweight collaborative development for teams
- Instance of [Forgejo](https://forgejo.org/), itself a soft-fork of [Gitea](https://about.gitea.com/)
- auth.timesigned.com: Identity Provider allowing seamless, secure access to key services with their DTU Account.
- Instance of [Authentik](https://goauthentik.io/).
- uptime.timesigned.com: Black-box monitoring with notifications
- Instance of [Authentik](https://goauthentik.io/).
# References
## Wireguard / systemd-networkd
- `systemd-networkd` Network: <https://www.freedesktop.org/software/systemd/man/systemd.network.html>
- `systemd-networkd` NetDev: <https://man.archlinux.org/man/systemd.netdev.5>
- Setup Inspiration: <https://elou.world/en/tutorial/wireguard>
- Wireguard w/`systemd-networkd`: <https://wiki.archlinux.org/title/WireGuard#systemd-networkd>
- Network Test w/`iperf`: <https://www.redhat.com/sysadmin/network-testing-iperf3>
## Ansible
- DigitalOcean `droplet`: <https://docs.ansible.com/ansible/latest/collections/community/digitalocean/digital_ocean_droplet_module.html>
- CloudFlare `dns`: <https://docs.ansible.com/ansible/latest/collections/community/general/cloudflare_dns_module.html>
- `template`: <https://docs.ansible.com/ansible/latest/collections/ansible/builtin/template_module.html>
- `password-store`: <https://docs.ansible.com/ansible/latest/collections/community/general/passwordstore_lookup.html>
- `set-fact`: <https://docs.ansible.com/ansible/latest/collections/ansible/builtin/set_fact_module.html>
- `file`: <https://docs.ansible.com/ansible/latest/collections/ansible/builtin/file_module.html>
### Docker Ansible
- Index: <https://docs.ansible.com/ansible/latest/collections/community/docker/index.html>
- Docker `swarm` Module: <https://docs.ansible.com/ansible/latest/collections/community/docker/docker_swarm_module.html>
- Docker `network` Module: <https://docs.ansible.com/ansible/latest/collections/community/docker/docker_network_module.html>
- Docker `prune` Module: <https://docs.ansible.com/ansible/latest/collections/community/docker/docker_prune_module.html>
- Docker `volume` Module: <https://docs.ansible.com/ansible/latest/collections/community/docker/docker_volume_module.html>
## rclone
- Docker Plugin Docs: <https://rclone.org/docker/>
- `rclone` mount: <https://rclone.org/commands/rclone_mount/>
- Docker Serve Docs: <https://rclone.org/commands/rclone_serve_docker/#options>
- S3 Backend: <https://rclone.org/s3/>
- Crypt Meta-Backend: <https://rclone.org/crypt/>
## Swarm Deployment
- The Funky Penguin: <https://geek-cookbook.funkypenguin.co.nz/docker-swarm>
- Traefik Certificate Auto-Renewal: <https://doc.traefik.io/traefik/https/acme/#automatic-renewals>
- Traefik Service: <https://doc.traefik.io/traefik/routing/services/#configuring-http-services>