2025-02-06 23:01:38 +01:00
2025-05-24 21:27:33 +02:00
2025-06-30 14:57:58 +02:00
2025-06-15 18:42:14 +02:00
2025-06-30 14:57:58 +02:00
2024-06-23 11:12:53 +02:00
2025-05-24 21:27:33 +02:00
2025-06-09 20:03:12 +02:00
2024-12-19 23:15:06 +01:00
2025-06-22 22:54:11 +02:00
2024-07-23 14:00:53 +02:00
2025-06-10 09:15:09 +02:00

Brass

A webservice to plan and organize personnel deployment for Brandsicherheitswachen (german; fire watch).

Key Technologies

Getting started with developing

  1. Clone the repository.
  2. Install and configure Postgresql. Create a new database for brass: createdb brass.
  3. Configure database connection string in .env config file.
  4. Install required development tools cargo install <tool>
    • sqlx-cli
    • mailtutan
    • cargo-watch
    • cargo-nextest
  5. Migrate the development and test database: cargo db migrate -e development & cargo db migrate -e test
  6. Create superuser: cargo r -- createadmin
  7. Run and recompile application on file change: cargo w
  8. Run tests via nextest and review possible snapshot changes: cargo t

Build & Deploy

  1. Clone the repository.
  2. Build release cargo b --release.
  3. Copy the artifact target/release/brass-web to the desired location. Make it executable chmod +x brass-web.
  4. Create Postgresql database on the target host, configure your mail server.
  5. Configuration for Brass is done via Environment Variables, see .env for a list.
  6. Migrate the database [LIST_OF_ENV_VARIABLES] brass-web migrate.
  7. Create a superuser [LIST_OF_ENV_VARIABLES] brass-web createadmin.
  8. Create some sort of service file (systemd .service, openbsd rc.conf, ...) to run Brass in the background. Examples can be found in docs/ directory.

Contributing & Issues

Code lies on my private gitea instance, thus there's no easy way for creating issues or making contributions. If you've got an issue or want to contribute, write me an email and we'll figure it out.

Project Structure

  • TODO

Further Reading

More in depth documentation about design decisions, helpful commands and database schema can be found in docs/ directory.

Copyright & License

Copyright 2025 Max Hohlfeld Brass is licensed under GNU AGPLv3.

Description
No description provided
Readme AGPL-3.0 20 MiB
Languages
Rust 77.4%
HTML 20.8%
JavaScript 1.1%
SCSS 0.7%