Files
notesnook-sync-server_custo…/README.md
T
Ibaraki DoujiandGitHub 3c7327d3c7 docker: fix compose self-hosting and add external Mongo/MinIO/Garage examples (#106)
* docker: update .env and docker-compose.yml for SMTP and new services

* docker: add external MinIO, MongoDB, and GarageHQ examples with setup instructions

* docs: update README with dotenv docker setup instructions and configuration redirect for external services

* docker: update service dependency condition for setup-themes in docker-compose.yml

* chore: update example URLs in .env for public services
2026-07-29 09:07:52 +05:00

112 lines
3.0 KiB
Markdown

# Notesnook Sync Server
This repo contains the full source code of the Notesnook Sync Server licensed under AGPLv3.
## Building
### From source
Requirements:
1. [.NET 8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)
2. [git](https://git-scm.com/downloads)
The first step is to `clone` the repository:
```bash
git clone https://github.com/streetwriters/notesnook-sync-server.git
# change directory
cd notesnook-sync-server
```
Once you are inside the `./notesnook-sync-server` directory, run:
```bash
# this might take a while to complete
dotnet restore Notesnook.sln
```
Then build all projects:
```bash
dotnet build Notesnook.sln
```
To run the `Notesnook.API` project:
```bash
dotnet run --project Notesnook.API/Notesnook.API.csproj
```
To run the `Streetwriters.Messenger` project:
```bash
dotnet run --project Streetwriters.Messenger/Streetwriters.Messenger.csproj
```
To run the `Streetwriters.Identity` project:
```bash
dotnet run --project Streetwriters.Identity/Streetwriters.Identity.csproj
```
### Using docker
The sync server can easily be started using Docker.
Download `docker-compose.yml` and [`.env`](.env):
```bash
wget https://raw.githubusercontent.com/streetwriters/notesnook-sync-server/master/docker-compose.yml
wget https://raw.githubusercontent.com/streetwriters/notesnook-sync-server/master/.env
```
Edit `.env` and set at least `NOTESNOOK_API_SECRET`. See `.env` for all configuration options.
Then start the stack:
```bash
docker compose up
```
This sets up MongoDB, MinIO, and the Notesnook services.
Optional services (`themes-server`, `cors-proxy`, `inbox-api`): `docker compose --profile extras up`
For external MongoDB, MinIO, or Garage deployments, see [`examples/`](examples/).
## TODO Self-hosting
**Note: Self-hosting the Notesnook Sync Server is now possible, but without support. Documentation will be provided at a later date. We are working to enable full on-premise self-hosting, so stay tuned!**
- [x] Open source the Sync server
- [x] Open source the Identity server
- [x] Open source the SSE Messaging infrastructure
- [x] Fully Dockerize all services
- [x] Use self-hosted Minio for S3 storage
- [x] Publish on DockerHub
- [x] Add settings to change server URLs in Notesnook client apps (starting from v3.0.18)
- [ ] Write self hosting docs
## License
```
This file is part of the Notesnook Sync Server project (https://notesnook.com/)
Copyright (C) 2023 Streetwriters (Private) Limited
This program is free software: you can redistribute it and/or modify
it under the terms of the Affero GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Affero GNU General Public License for more details.
You should have received a copy of the Affero GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
```