Configure permissions properly on Rocket.toml. Make static path behave better
This commit is contained in:
parent
c824a36832
commit
cdfe44d958
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -2189,7 +2189,7 @@ checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reminder-rs"
|
name = "reminder-rs"
|
||||||
version = "1.6.10-4"
|
version = "1.6.10"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64",
|
"base64",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
28
README.md
28
README.md
@ -7,7 +7,22 @@ reminders are paid on the hosted version of the bot. Keep reading if you want to
|
|||||||
|
|
||||||
You'll need rustc and cargo for compilation. To run, you'll need Python 3 still (due to no suitable replacement for dateparser in Rust)
|
You'll need rustc and cargo for compilation. To run, you'll need Python 3 still (due to no suitable replacement for dateparser in Rust)
|
||||||
|
|
||||||
### Compiling for local target
|
### Build APT package
|
||||||
|
|
||||||
|
Recommended method.
|
||||||
|
|
||||||
|
By default, this builds targeting Ubuntu 20.04. Modify the Containerfile if you wish to target a different platform. These instructions are written using `podman`, but `docker` should work too.
|
||||||
|
|
||||||
|
1. Install container software: `sudo apt install podman`.
|
||||||
|
2. Install database server: `sudo apt install mysql-server-8.0`. Create a database called `reminders`
|
||||||
|
3. Install SQLx CLI: `cargo install sqlx-cli`
|
||||||
|
4. From the source code directory, execute `sqlx migrate run`
|
||||||
|
5. Build container image: `podman build -t reminder-rs .`
|
||||||
|
6. Build with podman: `podman run --rm --network=host -v "$PWD":/mnt -w /mnt -e "DATABASE_URL=mysql://user@localhost/reminders" reminder-rs cargo deb`
|
||||||
|
|
||||||
|
|
||||||
|
### Compiling for other target
|
||||||
|
|
||||||
1. Install requirements:
|
1. Install requirements:
|
||||||
`sudo apt install gcc gcc-multilib cmake libssl-dev build-essential python3-dateparser`
|
`sudo apt install gcc gcc-multilib cmake libssl-dev build-essential python3-dateparser`
|
||||||
2. Install rustup from https://rustup.rs
|
2. Install rustup from https://rustup.rs
|
||||||
@ -19,18 +34,9 @@ You'll need rustc and cargo for compilation. To run, you'll need Python 3 still
|
|||||||
* `DATABASE_URL` - the URL of your MySQL database (`mysql://user[:password]@domain/database`)
|
* `DATABASE_URL` - the URL of your MySQL database (`mysql://user[:password]@domain/database`)
|
||||||
8. Build: `cargo build --release`
|
8. Build: `cargo build --release`
|
||||||
|
|
||||||
### Compiling for other target
|
|
||||||
By default, this builds targeting Ubuntu 20.04. Modify the Containerfile if you wish to target a different platform. These instructions are written using `podman`, but `docker` should work too.
|
|
||||||
|
|
||||||
1. Install container software: `sudo apt install podman`.
|
|
||||||
2. Install database server: `sudo apt install mysql-server-8.0`. Create a database called `reminders`
|
|
||||||
3. Install SQLx CLI: `cargo install sqlx-cli`
|
|
||||||
4. From the source code directory, execute `sqlx migrate run`
|
|
||||||
5. Build container image: `podman build -t reminder-rs .`
|
|
||||||
6. Build with podman: `podman run --rm --network=host -v "$PWD":/mnt -w /mnt -e "DATABASE_URL=mysql://user@localhost/reminders" reminder-rs cargo deb`
|
|
||||||
|
|
||||||
|
|
||||||
### Configuring
|
### Configuring
|
||||||
|
|
||||||
Reminder Bot reads a number of environment variables. Some are essential, and others have hardcoded fallbacks. Environment variables can be loaded from a .env file in the working directory.
|
Reminder Bot reads a number of environment variables. Some are essential, and others have hardcoded fallbacks. Environment variables can be loaded from a .env file in the working directory.
|
||||||
|
|
||||||
__Required Variables__
|
__Required Variables__
|
||||||
|
@ -5,4 +5,4 @@ template_dir = "/lib/reminder-rs/templates"
|
|||||||
limits = { json = "10MiB" }
|
limits = { json = "10MiB" }
|
||||||
|
|
||||||
[release]
|
[release]
|
||||||
secret_key = "release"
|
# secret_key = ""
|
||||||
|
1
debian/postinst
vendored
1
debian/postinst
vendored
@ -10,5 +10,6 @@ if [ ! -f '/etc/reminder-rs/config.env' ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
chown reminder /etc/reminder-rs/config.env
|
chown reminder /etc/reminder-rs/config.env
|
||||||
|
chown reminder /etc/reminder-rs/Rocket.toml
|
||||||
|
|
||||||
#DEBHELPER#
|
#DEBHELPER#
|
||||||
|
11
debian/postrm
vendored
Normal file
11
debian/postrm
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
id -u reminder &>/dev/null || userdel reminder
|
||||||
|
|
||||||
|
if [ -f '/etc/reminder-rs/config.env' ]; then
|
||||||
|
rm /etc/reminder-rs/config.env
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
@ -6,7 +6,7 @@ mod consts;
|
|||||||
mod macros;
|
mod macros;
|
||||||
mod routes;
|
mod routes;
|
||||||
|
|
||||||
use std::{collections::HashMap, env};
|
use std::{collections::HashMap, env, path::Path};
|
||||||
|
|
||||||
use oauth2::{basic::BasicClient, AuthUrl, ClientId, ClientSecret, RedirectUrl, TokenUrl};
|
use oauth2::{basic::BasicClient, AuthUrl, ClientId, ClientSecret, RedirectUrl, TokenUrl};
|
||||||
use rocket::{
|
use rocket::{
|
||||||
@ -88,6 +88,9 @@ pub async fn initialize(
|
|||||||
|
|
||||||
let reqwest_client = reqwest::Client::new();
|
let reqwest_client = reqwest::Client::new();
|
||||||
|
|
||||||
|
let static_path =
|
||||||
|
if Path::new("web/static").exists() { "web/static" } else { "/lib/reminder-rs/static" };
|
||||||
|
|
||||||
rocket::build()
|
rocket::build()
|
||||||
.attach(Template::fairing())
|
.attach(Template::fairing())
|
||||||
.register(
|
.register(
|
||||||
@ -105,7 +108,7 @@ pub async fn initialize(
|
|||||||
.manage(reqwest_client)
|
.manage(reqwest_client)
|
||||||
.manage(serenity_context)
|
.manage(serenity_context)
|
||||||
.manage(db_pool)
|
.manage(db_pool)
|
||||||
.mount("/static", FileServer::from("/lib/reminder-rs/static"))
|
.mount("/static", FileServer::from(static_path))
|
||||||
.mount(
|
.mount(
|
||||||
"/",
|
"/",
|
||||||
routes![
|
routes![
|
||||||
|
Loading…
Reference in New Issue
Block a user