OpenShock backend
You can access our Open API Doc here:
https://api.openshock.app/swagger
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 |
Reffer to the Npgsql Connection String documentation page for details about OPENSHOCK__DB_CONN
.
Reffer to StackExchange.Redis Configuration documention 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.yml
and.env
file from the repository - Change the values in the
.env
file - 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