Thoth is a bullet journal application in Python and TypeScript. Meant to replace the physical book, intended to be used on any smart device. Named after the egyptian god Thoth, god of writing, magic, wisdom, and the moon.
make install
make assets
Once all the builds have completed successfully, apply the migrations using the Django built-in migration tools.
Execute poetry run python manage.py migrate
Thoth's user
and entries
models are minimal, extension is simple. If extended, you must apply
the migrations by running the following.
poetry run python manage.py makemigrations ; poetry run python manage.py migrate
.
The frontend javascript is compiled from typescript using babel. Any changes made to the frontend will require execution of make assets
in order to recompile.
Running in a development environment is simple, after setup, use poetry to run Django's manage.py
with,
poetry run python manage.py runserver
When deploying the application to a production environment, you'll want to keep the application alive forever. Though, this is not the only option here, running a systemd service to manage a gunicorn server is recommended.
To run the gunicorn server manually from command line inside from our virtual environment.
poetry run gunicorn --access-logfile - --workers 3 --bind unix:$HOME/path/to/thoth/thoth.sock index.wsgi:application
To enable service management with systemd
place the above line in a script named run.sh
in the project root.
The following .service
file should be in /etc/systemd/system/
.
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=thoth
Group=www-data
WorkingDirectory=/path/to/thoth
ExecStart=/bin/sh /path/to/thoth/run.sh
[Install]
WantedBy=multi-user.target
Any questions in regards to this software, feel free to send an email to, [email protected].
If any issues occur when accessing/using this application, please file a bug report issue.
To contribute, fork this repository, apply changes to a local branch and create a pull request. All contributions are welcome and will be reviewed accordingly.