# Wolfgang This is a server for hosting metadata on classical music. ## Running Wolfgang should reside behind a reverse proxy (e.g. Nginx) that is set up to only use TLS encrypted connections. You will need a running [PostgreSQL](https://www.postgresql.org/) service. To set up the database (and migrate to future versions) use the Diesel command line utility from within the source code repository. This utility and Wolfgang itself use the environment variable `WOLFGANG_DATABASE_URL` to find the database. A nice way to set it up is to use a file called `.env` within the toplevel directory of the repository. ```bash # Install the Diesel command line utility: cargo install diesel_cli --no-default-features --features postgres # Configure the database URL (replace username and table): echo "WOLFGANG_DATABASE_URL=\"postgres://username@localhost/table\"" >> .env # Run migrations: ~/.cargo/bin/diesel migration run # Set a secret that will be used to sign access tokens: echo "WOLFGANG_SECRET=\"$(openssl rand -base64 64)\"" >> .env ``` ## Hacking Wolfgang is written in [Rust](https://www.rust-lang.org) using the [Actix Web](https://actix.rs/) framework for serving requests and [Diesel](https://diesel.rs/) for database access. The linked websites should provide you with the necessary information to get started. ## License Wolfgang is free and open source software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Wolfgang is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.