{"id":18281957,"url":"https://github.com/kotatsuapp/kotatsu-syncserver","last_synced_at":"2025-04-05T06:30:42.917Z","repository":{"id":46375844,"uuid":"507519352","full_name":"KotatsuApp/kotatsu-syncserver","owner":"KotatsuApp","description":"User data synchronization server for Kotatsu app","archived":false,"fork":false,"pushed_at":"2025-03-28T06:47:27.000Z","size":148,"stargazers_count":43,"open_issues_count":2,"forks_count":18,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T07:31:48.329Z","etag":null,"topics":["android","ktor-server","ktorm","manga","manga-reader","synchronization"],"latest_commit_sha":null,"homepage":"https://kotatsu.app/dev/sync-server/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KotatsuApp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-26T08:33:50.000Z","updated_at":"2025-03-28T06:47:31.000Z","dependencies_parsed_at":"2023-12-10T14:31:25.993Z","dependency_job_id":"e89008c9-afe5-4e4d-8905-5a2e054ef400","html_url":"https://github.com/KotatsuApp/kotatsu-syncserver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KotatsuApp%2Fkotatsu-syncserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KotatsuApp%2Fkotatsu-syncserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KotatsuApp%2Fkotatsu-syncserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KotatsuApp%2Fkotatsu-syncserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KotatsuApp","download_url":"https://codeload.github.com/KotatsuApp/kotatsu-syncserver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299766,"owners_count":20916183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ktor-server","ktorm","manga","manga-reader","synchronization"],"created_at":"2024-11-05T13:03:54.222Z","updated_at":"2025-04-05T06:30:42.904Z","avatar_url":"https://github.com/KotatsuApp.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kotatsu Synchronization Server\n\n[Kotatsu](https://github.com/KotatsuApp/Kotatsu) is a free and open source manga reader for Android platform. Supports a lot of online catalogues on different languages with filters and search, offline reading from local storage, favourites, bookmarks, new chapters notifications and more features.\n\nList of official servers:\n|Domain|Location|Status|\n|---|---|---|\n|sync.kotatsu.app|Belarus|![[Uptime](https://health.kotatsu.app/api/badge/1/status)](https://status.kotatsu.app/api/badge/1/status)|\n|moe.shirizu.org|Netherlands|![[Uptime](https://health.kotatsu.app/api/badge/7/status)](https://status.kotatsu.app/api/badge/7/status)|\n\n## What is synchronization?\nSynchronization is needed to store your collection of favorites, history and categories and have remote access to them. On a synchronized device, you can restore your manga collection in real time without loss. It also supports working across multiple devices. It is convenient for those who use several devices.\n\n## How does synchronization work?\n - An account is created and configured in the application where it will store data;\n - Synchronization starts. The data selected by the user is saved on the service and stored there under protection;\n - Another device connects and syncs with the service;\n - The uploaded data appears on the device connected to the account.\n\n## What data can be synchronized?\n - Favorites (with categories);\n - History.\n\n## How do I sync my data?\nGo to `Options -\u003e Settings -\u003e Services`, then select **Synchronization**. Enter your email address (even if you have not registered in the synchronization system, the authorization screen also acts as a registration screen), then come up with and enter a password.\n\n    ATTENTION: there is no password recovery from the account at the moment,\n\tif you forget the password, you will not be able to log into your account on other\n\tdevices, so we recommend that you do not forget the password or write it down somewhere.\n\nAfter the authorization/registration process, you will return back to the **Content** screen. To set up synchronization, select **Synchronization** again, and then you will go to system sync settings. Choose what you want to sync, history, favorites or all together, after which automatic synchronization to our server will begin.\n\n## Can I use a synchronization server on my hosting?\nYes, you can use your synchronization server in the application by specifying its address (`Options -\u003e Settings -\u003e Services -\u003e Synchronization settings -\u003e Server address`). Instructions for deploying the server are below.\n\n## Installation\n### MySQL schema\n\nBefore deploying the sync server, you have to run the SQL script to setup the schema for your MySQL database:\n\n\tmysql -h hostname -u user database \u003c ./database.sql\n\n### Docker\nBuild image container:\n\n    docker build github.com/KotatsuApp/kotatsu-syncserver.git -t kotatsuapp/syncserver\n\nRun container:\n\n    docker run -d -p 8081:8080 \\\n\t-e DATABASE_HOST=your_mysql_db_host \\\n\t-e DATABASE_USER=your_mysql_db_user \\\n\t-e DATABASE_PASSWORD=your_mysql_db_password \\\n\t-e DATABASE_NAME=your_mysql_db_name \\\n \t-e DATABASE_PORT=your_mysql_db_port \\\n\t-e JWT_SECRET=your_secret \\\n\t-e ALLOW_NEW_REGISTER=true \\\n\t--restart always \\\n\t--name kotatsu-sync kotatsuapp/syncserver\n\nIn case you don't want others to use your instance, register your accounts then set `ALLOW_NEW_REGISTER` to `false`.\n\n### Systemd\nRequirements:\n- JDK 17+\n- Gradle 8.3+\n\nCommands:\n\n    $ git clone https://github.com/KotatsuApp/kotatsu-syncserver.git\n    $ cd kotatsu-syncserver \u0026\u0026 ./gradlew shadowJar\n\nThen edit file `kotatsu-sync.service`, change `replaceme` fields with your values (MySQL is used for database) and specify the `kotatsu-syncserver-0.0.1.jar` file location (it can be found in `build/libs` directory after buliding)\n\n\t$ cp kotatsu-sync.service /etc/systemd/system\n\t$ systemctl enable kotatsu-sync\n  \t$ systemctl daemon-reload\n\t$ systemctl start kotatsu-sync\n\nThat's all :)\nFor any questions, please, contact us in [Telegram group](https://t.me/kotatsuapp) or write an issue, thanks.\n\n## License\n\n[![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl-3.0.en.html)\n\nYou may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications\nto or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build \u0026\ninstall instructions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkotatsuapp%2Fkotatsu-syncserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkotatsuapp%2Fkotatsu-syncserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkotatsuapp%2Fkotatsu-syncserver/lists"}