Webpage for "Hanus Days" - A unique social city academic festival offering a value programme at a point where Christianity meets today´s society!
Backend: Python 3 Wagtail (Django)
Frontend: Sass, jQuery, Elm
Monitoring: Status Page
Project depends heavily on Cloudflare's CDN. Everything is stored and served from CDN, even html pages. Of course, except for admin interface. When a page is edited in admin, we clear CDN cache for it's url and all the dependent urls.
This gives us a great benefit - our servers handle less than 10% of traffic, everything else is served from CDN.
Deployment is done automatically with GitLab CI (check .gitlab-ci.yml
). There are 2 stages:
- New commits in master are automatically deployed to staging server.
- Build new docker image
- deploy image to server
- clean CDN cache
- After manual confirmation in Gitlab, production deployment starts
- deploy image to server
- clean CDN cache
All the secrets are stored in GitLab
Backup is created once a week with GitLab CI/CD Schedules.
- DB dump is copied to Dropbox.
- Install docker and yarn
- Install frontend packages with
yarn install
and build docker images withdocker-compose build
- Create network:
docker network create hanus-net
Run backend: docker-compose up web
Run frontend: yarn run start
Build production frontend: yarn run prod
Bundle elm: elm make src/Main.elm --optimize --output=elm-bundle.js
Check wiki for more!
docker run --restart unless-stopped
-v $PWD/docker/caddy/data:/data
-v $PWD/docker/caddy/config:/config
-v $PWD/Caddyfile:/etc/caddy/Caddyfile
-v /var/www/static:/var/www/static
-v /var/www/media:/var/www/media
--name caddy
--network host -e DOMAIN=sk -d caddy:2.5.2