OpenShock backend
You can access our Open API Doc here:
https://api.openshock.app/scalar/viewer
The API can be configured using the following environment variables: Preferred way is a .env file.
| Variable | Required | Default value | Allowed / Example value |
|---|---|---|---|
OPENSHOCK__DB__CONN | x | Host=postgres-server-host;Port=5432;Database=openshock;Username=openshock;Password=superSecurePassword | |
OPENSHOCK__DB__SKIPMIGRATION | false | true, false | |
OPENSHOCK__DB__DEBUG | false | true, false | |
OPENSHOCK__FRONTEND__BASEURL | x | https://my-openshock-instance.net or https://shocklink.net | |
OPENSHOCK__FRONTEND__SHORTURL | x | https://myoi.net or https://shockl.ink | |
OPENSHOCK__FRONTEND__COOKIEDOMAIN | x | my-openshock-instance.net | |
OPENSHOCK__REDIS__CONN | x | redis-server-host:6379 | |
OPENSHOCK__MAIL__SENDER__EMAIL | x | system@my-openshock-instance.net | |
OPENSHOCK__MAIL__SENDER__NAME | x | MyOpenShockInstance System | |
OPENSHOCK__MAIL__TYPE | x | MAILJET, SMTP | |
OPENSHOCK__TURNSTILE__ENABLE | x | true, false | |
OPENSHOCK__LCG__FQDN | x | de1-gateway.my-openshock-instance.net de1-gateway.shocklink.net | |
OPENSHOCK__LCG__COUNTRYCODE | x | DE or XX as a placeholder / unknown |
Refer to the Npgsql Connection String documentation page for details about OPENSHOCK__DB_CONN. Refer to StackExchange.Redis Configuration documentation page for details about OPENSHOCK__REDIS__CONN.
When Turnstile enable is set to true, the following environment variable is required:
| Variable | Required | Default value | Allowed / Example value |
|---|---|---|---|
OPENSHOCK__TURNSTILE__SITEKEY | x | ||
OPENSHOCK__TURNSTILE__SECRETKEY | x |
You need these environment variables to use Mailjet:
| Variable | Required | Default value | Allowed / Example value |
|---|---|---|---|
OPENSHOCK__MAIL__MAILJET__KEY | x | ||
OPENSHOCK__MAIL__MAILJET__SECRET | x | ||
OPENSHOCK__MAIL__MAILJET__TEMPLATE__PASSWORDRESET | x |
You need these environment variables to use SMTP:
| Variable | Required | Default value | Allowed / Example value |
|---|---|---|---|
OPENSHOCK__MAIL__SMTP__HOST | x | mail.my-openshock-instance.net | |
OPENSHOCK__MAIL__SMTP__PORT | 587 | 587 | |
OPENSHOCK__MAIL__SMTP__USERNAME | x | system@my-openshock-instance.net | |
OPENSHOCK__MAIL__SMTP__PASSWORD | x | superSecurePassword | |
OPENSHOCK__MAIL__SMTP__ENABLESSL | true | true or false | |
OPENSHOCK__MAIL__SMTP__VERIFYCERTIFICATE | true | true or false |
The OpenShock stack consists of the following components:
- Postgres as database
- Redis-Stack (with keyspace events KEA)
- The API (container, API)
- One or multiple gateways (container, LCG)
- One or multiple cron daemons (container, CRON)
- The WebUI
OpenShock instance needs to be under the same domain name to work correctly. This is due to cookie limitations in browsers. E.g. Fontend: https://openshock.app API: https://api.openshock.app LCG: https://de1-gateway.openshock.app
- Grab the
docker-compose.ymland.envfile from the repository - Change the values in the
.envfile - Adjust traefik to your needs (e.g. add SSL certificates)
Run with docker compose up -d
You could also bring your own reverse proxy.
You would need to remove traefik from the docker-compose.yml and route the traffic in your reverse proxy.
You can support the OpenShock Dev Team here: Sponsor OpenShock