A server for hosting metadata on classical music.
Find a file
2021-02-07 09:44:52 +01:00
migrations Remove separate part composers 2021-02-07 09:44:52 +01:00
src Remove separate part composers 2021-02-07 09:44:52 +01:00
.gitignore Initial commit 2021-01-30 14:21:53 +01:00
Cargo.toml Add framework for captchas 2021-01-30 21:36:49 +01:00
diesel.toml Initial commit 2021-01-30 14:21:53 +01:00
README.md Initial commit 2021-01-30 14:21:53 +01:00

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 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.

# 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 using the Actix Web framework for serving requests and Diesel 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/.