improve self hosting documentation

This commit is contained in:
Vendicated
2024-06-23 16:09:44 +02:00
parent 477392d59b
commit a22c87a082
3 changed files with 68 additions and 30 deletions
+40 -26
View File
@@ -1,34 +1,48 @@
# Backend
Vencord API
# Vencloud
## Hosting
The API has a Docker Compose configuration, so software-wise you shouldn't need much more than just Docker.
Docker is the official way of hosting the backend, and other setups (whilst technically supported) will be
up to you to manage.
Vencloud is Vencord's API for cloud settings sync!
1. Clone the repository
2. Copy `.env.example` to `.env`
3. Configure as necessary
- Port and host are irrelevant since it's running in a container, but you can change them if you wish.
- `REDIS_URI` should be changed to `redis:6379`.
- `ROOT_REDIRECT` should be changed to whatever you want the `/` of the API to be set to a different site,
like your own personal homepage.
- `DISCORD_*` should be configured with your Discord application. The redirect URI is `https://<yourdomain>/v1/oauth/callback`.
- `PEPPER_*` should be unique values. These provide extra anonymity and make it more difficult to get user
info. It [is recommended](https://stackoverflow.com/a/9622855) you use at least 32 bytes of randomness, e.g. through
`openssl rand -hex 32`.
- `SIZE_LIMIT` is up to you, but should usually be left as default. This is for the settings sync and how
much data a user can store.
- `ALLOWED_USERS` restricts what users can use this API instance for operations like settings sync.
- `PROMETHEUS` controls whether or not to expose the `/metrics` endpoint.
- `PROXY_HEADER` should be used if you're running it behind a reverse proxy or another service (i.e., Cloudflare).
4. Create a `docker-compose.override.yml` that maps your ports, like so:
## Self Hosting
> [!WARNING]
> Your instance has to be HTTPS capable due to [mixed content restrictions](https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content) in web browsers.
We provide a Docker build, so you don't need anything installed besides Docker!
### Cloning the Repository
First of all, you'll have to clone the source code to a convenient location:
```sh
git clone https://github.com/Vencord/Vencloud
```
### Setting up the Config
Copy the example configuration (`.env.example`) to `.env`. Now open it with your text editor of trust and fill in the configuration values.
All variables are documented there!
### Running
Don't forget to direct your terminal to the Vencloud directory, e.g. via `cd Vencloud`!
#### Via Docker
1. Create a `docker-compose.override.yml` that maps the port from docker to your system.
The following example assumes you will use port `8485`
```yaml
services:
backend:
ports:
- HOST_PORT:8080
- 8485:8080
```
5. `docker compose up -d`
2. Start the docker container via `docker compose up -d`. The server will be available at the configured host, in the above example `8485`
Please note that, due to mixed content requirements, you will need HTTPS on your self-hosted instance.
#### Natively
> [!WARNING]
> At the current moment, Go 21 is not yet supported, you'll need Go 20!
> An easy way to get Go 20 is to run `go install golang.org/dl/go1.20.0@latest` and then use the `go1.20` command instead of `go`
1. Install the [Go programming language](https://go.dev/dl/)
2. Build the code: `go build -o backend`
3. Start the server: `./backend`