Many changes in this release, and I am still getting around to keeping things tidy. For now, please keep an eye on the commit notes for the most accurate changes.
Most of the work today was spent on the following two items:
- #1 Support for Docker (arm64 and amd64 support was just added.)
- The container now uses a named volume due to issues with trying to map host folders. The volume stores the books.db database and can easily be inspected and copied with a few CLI commands. For those wanting to look under the hood at the database, using those docker CLI tools will be helpful. You can even run SQLite3 commands within a container.
Note: This build officially uses Gunicorn to serve the Flask application. Gunicorn (Green Unicorn) is a production-grade WSGI HTTP server that is designed for performance, security, and reliability in real-world deployments. Unlike Flask’s built-in development server (flask run), which is intended for debugging and local testing, Gunicorn can handle multiple requests concurrently, works well with process managers like systemd or supervisord, and is compatible with reverse proxies such as Nginx.
By using Gunicorn, this build ensures:
- Better concurrency via worker processes
- Improved stability under load or concurrent users
- Proper error handling and graceful restarts
- Compatibility with production best practices
Note: #3 At the moment, there is ZERO workaround for this. Users will need to either obtain SSL certificates/host their instance behind a Cloudflare tunnel.
Note: #4 Documentation is a WIP and will continue to be so...