Compare commits
3 commits
475accc50c
...
ab444e07f4
Author | SHA1 | Date | |
---|---|---|---|
ab444e07f4 | |||
3374110f38 | |||
d2ccc665fb |
3 changed files with 13 additions and 3 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -740,7 +740,7 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kosyncrs"
|
name = "kosyncrs"
|
||||||
version = "1.1.1"
|
version = "2.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"axum",
|
"axum",
|
||||||
"serde",
|
"serde",
|
||||||
|
|
13
src/main.rs
13
src/main.rs
|
@ -39,12 +39,15 @@ pub struct GetProgress {
|
||||||
timestamp: i64,
|
timestamp: i64,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
let pg_url: String = env::var("PG_URL")
|
let pg_url: String = env::var("PG_URL")
|
||||||
.ok()
|
.ok()
|
||||||
.and_then(|v| v.parse().ok())
|
.and_then(|v| v.parse().ok())
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
let listen_port: String = env::var("PORT").ok().and_then(|v| v.parse().ok()).unwrap();
|
||||||
|
|
||||||
let db_pool = PgPoolOptions::new()
|
let db_pool = PgPoolOptions::new()
|
||||||
.max_connections(64)
|
.max_connections(64)
|
||||||
|
@ -61,10 +64,12 @@ async fn main() {
|
||||||
.route("/syncs/progress", put(update_progress))
|
.route("/syncs/progress", put(update_progress))
|
||||||
.route("/syncs/progress/{document}", get(get_progress))
|
.route("/syncs/progress/{document}", get(get_progress))
|
||||||
.route("/healthcheck", get(healthcheck))
|
.route("/healthcheck", get(healthcheck))
|
||||||
|
.route("/version", get(version))
|
||||||
.with_state(db_pool);
|
.with_state(db_pool);
|
||||||
|
|
||||||
// run it with hyper on localhost:3003
|
let mut bind_with = "127.0.0.1:".to_owned();
|
||||||
let listener = tokio::net::TcpListener::bind("127.0.0.1:3003")
|
bind_with += &listen_port;
|
||||||
|
let listener = tokio::net::TcpListener::bind(bind_with)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
axum::serve(listener, app).await.unwrap();
|
axum::serve(listener, app).await.unwrap();
|
||||||
|
@ -74,6 +79,10 @@ async fn root() -> &'static str {
|
||||||
"KOreader sync server"
|
"KOreader sync server"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn version() -> &'static str {
|
||||||
|
VERSION
|
||||||
|
}
|
||||||
|
|
||||||
async fn create_user(
|
async fn create_user(
|
||||||
State(db_pool): State<PgPool>,
|
State(db_pool): State<PgPool>,
|
||||||
Json(payload): Json<User>,
|
Json(payload): Json<User>,
|
||||||
|
|
|
@ -12,6 +12,7 @@ Group=users
|
||||||
WorkingDirectory=/home/myuser
|
WorkingDirectory=/home/myuser
|
||||||
ExecStart=/usr/local/bin/kosyncrs
|
ExecStart=/usr/local/bin/kosyncrs
|
||||||
Environment="PG_URL=postgresql://kosync:password@localhost/kosync"
|
Environment="PG_URL=postgresql://kosync:password@localhost/kosync"
|
||||||
|
Environment="PORT=3003"
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue