- Python 50.2%
- Vue 23.1%
- TypeScript 13.1%
- HCL 3.9%
- JavaScript 3.2%
- Other 6.4%
* 📜 Simplify setup instructions (wip) * 📜 Simplify setup instructions * 📜 Enumerate installation steps * 🔨 Improve step 2 description * 🔨 Improve step 1 commands |
||
|---|---|---|
| .github | ||
| backend | ||
| docs | ||
| frontend | ||
| legal | ||
| pulumi | ||
| test/e2e | ||
| tofu | ||
| .editorconfig | ||
| .gitignore | ||
| docker-compose.yml | ||
| LICENSE | ||
| README.md | ||
Thunderbird Appointment
Invite others to grab times on your calendar. Choose a date. Make appointments as easy as it gets.
Feedback and Support
If you'd like to give feedback or need support, please see our Topicbox.
Get started
Using Docker is the recommended and for now the only supported method of building and developing Thunderbird Appointment. A detailed technical documentation of the application architecture can be found in the docs folder (still work-in-progress).
Installation
-
Get the application files and create your
.envfiles from the examples:git clone https://github.com/thunderbird/appointment cd appointment cp backend/.env.example backend/.env cp frontend/.env.example frontend/.env -
Make sure, that the
backend/.envfile containsAPP_ALLOW_FIRST_TIME_REGISTER=True. This will enable the creation of your first admin user. If you want to be able to access admin-only pages, add your account's email address to theAPP_ADMIN_ALLOW_LISTenv variable. -
Build and run the service in docker:
docker-compose up -d --buildThis will create and start 5 different containers (backend, frontend, postgres, redis and mailpit).
- Frontend can be accessed via: http://localhost:8080
- Backend can be accessed via: http://localhost:5000
- The PostgreSQL database will be accessible via
localhost:5433with username: password set totba:abcd%efgh - OpenAPI docs can be accessed via: http://localhost:5000/docs or http://localhost:5000/redoc
- Mailpit docs can be accessed via: http://localhost:8025
-
Check if all containers are running. On first-run the database will initialize, and a first time setup command will be triggered (going forward database migrations will automatically run on
docker-compose up). Check if the database contains tables, e.g. thesubscribertable (still empty at this point).
Authentication
Appointment includes simple password-based authentication. This is meant for developing and testing Appointment, but can also be used when self-hosting the app.
When you access the frontend the first time, you will see a first-time-user login form. Enter the email address you configured in your allow list (see Step 2 in the installation process above) and a password. This login will create the first user (also called 'subscriber' in Appointment) granting you access to the application. Any login attempts with other email addresses after that will check against existing credentials.
Note
For Thunderbird Services, we use our own OIDC provider Thunderbird Accounts. If you're starting fresh with Thunderbird Accounts, please review the documentations setting it up.
Contributing
Contributions are very welcome. Please lint/format code before creating PRs.
Check out the project's respective readmes:
Localization
This project uses Fluent for localization. Files are located in their respective l10n/<locale>/*.ftl.
Deployment
When changes are merged to main, a new release is cut, and the changes are deployed to stage.appointment.day.
After you've checked staging and it's ready to push to production, edit the release entry, and press the 'Publish release' button.