Most configuration can be set directly using environment variables or flags. The available flags can be found by running shiori --help
. The available environment variables are listed below.
Environment variable | Default | Required | Description |
---|---|---|---|
SHIORI_DEVELOPMENT |
False |
No | Specifies if the server is in dev mode |
Environment variable | Default | Required | Description |
---|---|---|---|
SHIORI_HTTP_ENABLED |
True | No | Enable HTTP service |
SHIORI_HTTP_PORT |
8080 | No | Port number for the HTTP service |
SHIORI_HTTP_ADDRESS |
: | No | Address for the HTTP service |
SHIORI_HTTP_ROOT_PATH |
/ | No | Root path for the HTTP service |
SHIORI_HTTP_ACCESS_LOG |
True | No | Logging accessibility for HTTP requests |
SHIORI_HTTP_SERVE_WEB_UI |
True | No | Serving Web UI via HTTP. Disable serves only the API. |
SHIORI_HTTP_SECRET_KEY |
Yes | Secret key for HTTP sessions. | |
SHIORI_HTTP_BODY_LIMIT |
1024 | No | Limit for request body size |
SHIORI_HTTP_READ_TIMEOUT |
10s | No | Maximum duration for reading the entire request |
SHIORI_HTTP_WRITE_TIMEOUT |
10s | No | Maximum duration before timing out writes |
SHIORI_HTTP_IDLE_TIMEOUT |
10s | No | Maximum amount of time to wait for the next request |
SHIORI_HTTP_DISABLE_KEEP_ALIVE |
true | No | Disable HTTP keep-alive connections |
SHIORI_HTTP_DISABLE_PARSE_MULTIPART_FORM |
true | No | Disable pre-parsing of multipart form |
The StorageConfig
struct contains settings related to storage.
Environment variable | Default | Required | Description |
---|---|---|---|
SHIORI_DIR |
(current dir) | No | Directory where Shiori stores its data. |
Shiori is designed to work out of the box, but you can change where it stores your bookmarks if you need to.
By default, Shiori saves your bookmarks in one of the following directories:
Platform | Directory |
---|---|
Linux | ${XDG_DATA_HOME}/shiori (default: ~/.local/share/shiori ) |
macOS | ~/Library/Application Support/shiori |
Windows | %LOCALAPPDATA%/shiori |
If you pass the flag --portable
to Shiori, your data will be stored in the shiori-data
subdirectory alongside the shiori executable.
To specify a custom path, set the SHIORI_DIR
environment variable.
Environment variable | Default | Required | Description |
---|---|---|---|
SHIORI_DBMS (deprecated) |
DBMS |
No | Deprecated (Use environment variables for DBMS) |
SHIORI_DATABASE_URL |
URL |
No | URL for the database (required) |
SHIORI_DBMS
is deprecated and will be removed in a future release. Please useSHIORI_DATABASE_URL
instead.
Shiori uses an SQLite3 database stored in the above data directory by default. If you prefer, you can also use MySQL or PostgreSQL database by setting the SHIORI_DATABASE_URL
environment variable.
MySQL example: SHIORI_DATABASE_URL="mysql://username:password@(hostname:port)/database?charset=utf8mb4"
You can find additional details in go mysql sql driver documentation.
PostgreSQL example: SHIORI_DATABASE_URL="postgres://pqgotest:password@hostname/database?sslmode=verify-full"
You can find additional details in go postgres sql driver documentation.
If you want to serve Shiori behind a reverse proxy, you can set the SHIORI_WEBROOT
environment variable to the path where Shiori is served, e.g. /shiori
.
Keep in mind this configuration wont make Shiori accessible from /shiori
path so you need to setup your reverse proxy accordingly so it can strip the webroot path.
We provide some examples for popular reverse proxies below. Please follow your reverse proxy documentation in order to setup it properly.
Fox nginx, you can use the following configuration as a example. The important part is the trailing slash in proxy_pass
directive:
location /shiori {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}