Atrium is a web server, reverse proxy and webdav server with user authentication.
It comes with a multiplatform client application.
Rust/Flutter version of Vestibule.
Example service installation can be found HERE.
OR
Example docker installation can be found HERE. Use your own GeoLite2-City.mmdb or remove the line.
In any case you will need to provide a configuration file. Atrium will start without one and create a minimal one, but since it will not even have users, it will be pretty much useless.
Example configuration can be found HERE.
To start quickly : configure your hostname, and set tls_mode to Auto.
See atrium.yaml for configuration options and examples.
The hostname configuration can be overridden with the environment variable MAIN_HOSTNAME.
Your DNS configuration should be as below :
| Domain | Type | Target |
|---|---|---|
| your.hostname | A | Your machine IPv4 |
| your.hostname | AAAA | Your machine IPv6 |
| *.your.hostname | CNAME | your.hostname |
Atrium includes an integrated, stateless fail2ban style jail to block IPs that are trying to access files without authorization or failing to authenticate.
It uses ip(6)tables to ban IPs on the host machine.
It would not work with docker deployments, as the docker image does not contain the iptables binaries.
The jail is configured in the jail section of atrium.yaml.
jail:
enabled: true # Enable the fail2ban style jail
max_retry: 3 # Number of fails before banning the IP
find_time: 60 # Time window in seconds to count fails
ban_time: 30 # Ban duration in days- When running in Docker, the container must use the host network mode (
network_mode: host) and have theNET_ADMINcapability to alter the host'siptables. iptablesmust be installed on the host.
git checkout main
git merge development --squash
# Alter commit message and commit
git checkout development
git reset --hard main
git push --forcecargo install cargo-udeps --locked
cargo +nightly udeps --all-targets
cargo install cargo-unused-features
unused-features analyze --bins --lib --tests && unused-features build-report --input "report.json" && unused-features prune --input "report.json"flutter run -d chrome --web-hostname atrium.127.0.0.1.nip.io --web-port 3000 --web-browser-flag "--unsafely-treat-insecure-origin-as-secure=http://atrium.127.0.0.1.nip.io:3000"
mv frontend frontend_old
flutter create --template=app --platforms="android,web" --description="Atrium's frontend app" --org="fr.ninico" --project-name="atrium" frontend