.forgejo | ||
deployment/kustomize | ||
docker | ||
docs | ||
src | ||
.dockerignore | ||
.env.example | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.python-version | ||
Dockerfile | ||
LICENSE | ||
Makefile | ||
playbook.yml | ||
pyproject.toml | ||
README.md | ||
uv.lock |
Servala Portal
The Servala Self-Service Portal
Documentation
Available at https://docs.servala.com/.
The project documentation is written in AsciiDoc and built with Antora.
It's automatically packaged and deployed by the CI/CD pipeline found in .forgejo/workflows/docs.yaml
.
Paths:
docs/modules/ROOT/pages
: Documentation pagesdocs/modules/ROOT/assets/images
: Images to be included in the documentation pagesdocs/modules/ROOT/nav.adoc
: Site navigation (new pages need to be added there)
Writing documentation is best done by running make docs-preview
and connecting to the site at http://localhost:2020/.
The browser add-on LiveReload - Web extension will help while editing with automated page reload in the browser.
Development setup
First, copy the .env.example
file to .env
and adjust the settings to your needs.
Make sure to source the file before running any commands.
Then use uv
to install the project and run its commands while you’re developing:
uv sync --dev
uv run src/manage.py migrate
uv run src/manage.py runserver
This will start the development server on http://localhost:8000.
Configuration
TODO
Code style and linting
Servala uses several linters / formatters to keep the project style consistent for you. Run them like this:
uv run black src/ # Code formatting; -c to just check
uv run isort src/ # Import ordering; -c to just check
uv run djlint src/ --reformat --format-js --format-css # Format templates, JS and CSS, --check to just check
uv run flake8 src/ # Python linter
The repository features a pre-commit configuration which helps to properly format the source code before committing. It's recommended to install and use it.
Docker
The project provides a Dockerfile which builds a production-ready container image. It uses Caddy to serve static files and connect to Gunicorn, the Python WSGI application server.
Building:
docker build -t local/servala-portal .
Running:
docker run --rm -ti -p 8080:8080 --name=servala-portal --rm --env-file .env local/servala-portal
TODO: Persistence
Deployment
TODO
Testing
TODO