The main application uses port 8080.
/healthz and /metrics endpoints uses port 8888.
The following config can be set via environment variables
| Tables | Required | Default |
|---|---|---|
| SERVER_SALT | x | |
| DATABASE_TYPE | in-memory | |
| REDIS_SERVER | localhost | |
| REDIS_PORT | 6379 | |
| SERVER_PORT | 8080 | |
| HEALTH_PORT | 8888 | |
| LOG_LEVEL | info | |
| VALID_FOR_OPTIONS | 3600,7200,43200,86400 | |
| MAX_SECRET_BYTES | 10485760 | |
| MAX_FILES | 20 | |
| MAX_FILE_SIZE_BYTES | 104857600 | |
| ENABLE_HSTS | false | |
| HSTS_MAX_AGE_SECONDS | 31536000 |
Required. Must be at least 32 characters and high entropy. This value is used as server-side secret material for key derivation.
Can either be in-memory or redis.
Address to your redis server.
Used to specify the port your redis server is using.
Listen port for api and ui endpoint.
Listen port for health endpoint, used mainly for liveness probes.
Used to specify loglevels, valid values are: debug, info, warn and error
Which options are available in the UI for secret expiration.
Only these values are accepted server-side for expires_in.
Maximum size of secret text content.
Maximum number of attached files.
Maximum size per file attachment.
Enable HSTS response header. Keep disabled unless TLS is correctly terminated upstream.
HSTS max-age value when ENABLE_HSTS=true.
curl --request POST \
--url http://localhost:8080/api \
--header 'Content-Type: application/json' \
--data '{
"content": "some super secret stuff goes here",
"expires_in": 10
}'expires_in is number of seconds until it expires.
The response will be the ID of your secret, which can be used to fetch it again.
Note: this returned value is a token containing both lookup identifier and access key.
To fetch you secret again to a GET request to http://localhost:8080/api/<your-secret-id-goes-here>
For example:
curl --request GET \
--url http://localhost:8080/api/Jsm9nDvKVhtAQEfz1Bukx7jHeKIBpPV8kX0B_a4w2rEqAke0MYJ_uvGc30s6o85TiIn-qeBm_9S55ajlDzysRw- Keep
/healthzand/metricson a non-public network. - Always run behind TLS (reverse proxy / ingress is supported).
- Security headers and no-store cache controls are enabled by default.
- Rotate
SERVER_SALTas part of incident response. - If a link is leaked, treat the secret as compromised and rotate underlying credentials.