Important
Thunderbird Accounts is still in active development and is not ready for any active use.
This project uses uv.
Thunderbird Accounts is a Django 5.1 application. Please read up on Django before diving in.
Ensure that uv is installed, and then run:
uv sync
Run the following and follow the terminal prompts:
./manage.py createsuperuser
docker-compose up --build -V
A server will be available at http://localhost:8087/
./manage.py runserver 0.0.0.0:8087
For development the following ports are exposed:
Service | Port for host computer | Port in docker network |
---|---|---|
Webserver | 8087 | 8087 |
Postgres | 5433 | 5432 |
Redis | 6380 | 6379 |
Redis (Insights) | 8071 | 8001 |
Mailpit (Web UI) | 8026 | 8025 |
Mailpit (SMTP) | 1026 | 1024 |
(Note: You're the host computer. So connect to postgres via port 5433!)
Apps are feature of django we can use to create re-usable modules with. We mostly just use them to separate out and organize components. Apps can depend on and/or require other internal apps, there's no hard rule here.
Ensure to nest all internal apps inside src/thunderbird_accounts
by appending the destination path after the command:
mkdir -p src/thunderbird_accounts/<app name> && ./manage.py startapp <app name> src/thunderbird_accounts/<app name>
Once the app is created go to src/thunderbird_accounts/<app name>/apps.py
and prepend thunderbird_accounts.
to AuthConfig.name so it looks like thunderbird_accounts.<app name>
.