diff --git a/README.md b/README.md index 1936997..5ef1655 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,14 @@ # KOreader Sync Server -This is a KOreader sync server, implemented in Rust. It uses the crates *axum*, *sqlx*, *serde* and *serde_json*. +This is a KOreader sync server, implemented in Rust. It uses the crates *axum*, *redis*, *serde* and *serde_json*. ## Requirements -- Rust toolchain for compilation -- A running PostgreSQL server +- Rust toolchain (≥ 1.63) for compilation +- A running Redis server - Nginx (or Apache) webserver as a reverse proxy, since kosyncrs only listens locally and uses HTTP. ## Installation -Just compile it with `cargo build --release`. You can then copy the executable for example to `/usr/local/bin/`. +Just compile it with `cargo build --release`. You can then copy the executable for example to `/usr/local/bin/`. If you want to start the service automatically, you can adapt the example systemd file for your needs. You can also use nginx as a reverse proxy, so that the sync server listens on port 443. -If you want to start the service automatically, you can adapt the example systemd file for your needs. Please pay particularly attention to the PG_URL environment variable.You have to adjust the database username and password. - -You can also use nginx as a reverse proxy, so that the sync server listens on port 443. An example file is provided. - -### Database setup -First, create a new database user and set a password: -``` -$ createuser -P kosync -``` - -Then, create a new database which is owned by the newly created user: -``` -$ createdb -O kosync kosync -``` - -Connect to the database (with psql) and create the database tables: -```sql -CREATE TABLE users ( - id BIGSERIAL PRIMARY KEY, - username TEXT NOT NULL, - password TEXT -); - -CREATE TABLE progresses ( - id BIGSERIAL PRIMARY KEY, - user_id BIGINT, - document TEXT UNIQUE NOT NULL, - progress TEXT NOT NULL, - percentage REAL NOT NULL, - device TEXT NOT NULL, - device_id TEXT NOT NULL, - timestamp BIGINT NOT NULL, - FOREIGN KEY (user_id) - REFERENCES users(id) ON DELETE CASCADE, - UNIQUE (user_id, document) -); -``` \ No newline at end of file +## Todo +- Test, if it really works, and if it works reliably. Feedback is very welcome! +- Make it more configurable \ No newline at end of file diff --git a/systemd/kosyncrs.service b/systemd/kosyncrs.service index b405332..ceeaf52 100644 --- a/systemd/kosyncrs.service +++ b/systemd/kosyncrs.service @@ -11,7 +11,6 @@ User=myuser Group=users WorkingDirectory=/home/myuser ExecStart=/usr/local/bin/kosyncrs -Environment="PG_URL=postgresql://kosync:password@localhost/kosync" Restart=always [Install]