Since we're cool and modern boys, we use docker for both dev & prod (for possible quick scaling? :D). Local dev is simple: just run aiohttp service in docker with src mounted.
cp .env.example .env
make runPytest for aiohttp, run with:
make testNote what in testing environment postgres isn't mounted, so you need to re-create models from scratch every time.
Production build is bit harder, we use caddy & certbot for easy ssl cert management:
# populate examples with actual data
cp .example.env .env
cp config/Caddyfile.example config/Caddyfile
sudo make deployPossibly, webpack would be used for bundling js for admin dashboard to caddy's container.
Infrastructure tasks:
- Project description
- local docker development
- test structure
- production configuration with nginx
- aiotg (polling)
- Database initialization
- Middleware
- db migrations
- db schema
- ci/cd
- rolling updates (zero downtime)
- Remove Dockerfile.testing
Coding tasks:
- aiotg (webhook for production)
- REA parser implementation
- vk & fb support