Skip to content

Celeo/vzdv

Repository files navigation

vzdv

lang licensing status CI

New vZDV website.

This site is not affiliated with the Federal Aviation Administration, actual Denver ARTCC, or any real-world governing aviation body. All content herein is solely for use on the VATSIM network.

Project goals

  • Provide a website solution for the vZDV VATUSA ARTCC.
  • Be both fast and lightweight.
  • Be easy to use.
  • Follow good software development practices.
  • Be easy to develop, deploy, and run.

Building

Requirements

  • Git
  • A recent version of Rust

Steps

git clone https://github.com/Celeo/vzdv
cd vzdv
cargo build

This app follows all Clippy lints on Nightly Rust. You can use either both a stable and nightly toolchain, or just a nightly (probably; I use the dual setup). If using both, execute clippy with cargo +nightly clippy. You do not need this for running the app, just developing on it.

Running

This project contains multiple binaries. From the project root, you can run cargo run --bin vzdv-site to start the site. If you build and export the binaries (cargo b --release, ...), just execute the correct binary.

You'll need to create a configuration file. An empty layout example is supplied here. You can put this file anywhere on the system and point to it with the --config <path> flag; if the file is in the same directory as the binary and named "vzdv.toml", you do not need to supply the flag.

Additional CLI parameters can be found by running each binary with the --help flag.

Deploying

This app makes few assertions about how it should be ran. You can run it directly, run triggered by a systemd unit file, run in a Docker container, etc. You will need to have this app behind some sort of reverse proxy that provides HTTPS, like Caddy as handling TLS termination is not something that this app does or will handle.

License

Licensed under either of

Loading indicator from SamHerbert/SVG-Loaders. Geo boundary data from vatspy-data-project. HTML table sorting JS from kryogenix.org. See 'Cargo.toml' files for a list of used Rust libraries.

Contributing

This repo is happily FOSS, but any contributions will need to fall in line with my vision of how the site looks and works.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.