mirror of
https://github.com/hay-kot/homebox.git
synced 2024-12-22 14:56:31 +00:00
c4b923847a
* basic currency service for loading at runtime * api endpoint for currencies * sort slice before return * remove currency validation * validate using currency service * implement selecting dynamic currency options * bump go version * fix type definition * specify explicit type * change go versions * proper types for assetId * log/return currency error * make case insensative * use ToUpper instead * feat: adding new currencies (#715) * fix: task swag (#710) Co-authored-by: Quoing <pavel.cadersky@mavenir.com> * [feat] Adding new currencies --------- Co-authored-by: quoing <quoing@users.noreply.github.com> Co-authored-by: Quoing <pavel.cadersky@mavenir.com> Co-authored-by: Bradley <41597815+userbradley@users.noreply.github.com> * remove ts file and consoldate new values into json * move flag to options namespace * add env config for currencies * basic documentaion * remove in sync test --------- Co-authored-by: quoing <quoing@users.noreply.github.com> Co-authored-by: Quoing <pavel.cadersky@mavenir.com> Co-authored-by: Bradley <41597815+userbradley@users.noreply.github.com>
111 lines
7.2 KiB
Markdown
111 lines
7.2 KiB
Markdown
# Quick Start
|
|
|
|
## Docker Run
|
|
|
|
Great for testing out the application, but not recommended for stable use. Checkout the docker-compose for the recommended deployment.
|
|
|
|
For each image there are two tags, respectively the regular tag and $TAG-rootless, which uses a non-root image.
|
|
|
|
```sh
|
|
# If using the rootless image, ensure data
|
|
# folder has correct permissions
|
|
$ mkdir -p /path/to/data/folder
|
|
$ chown 65532:65532 -R /path/to/data/folder
|
|
# ---------------------------------------
|
|
# Run the image
|
|
$ docker run -d \
|
|
--name homebox \
|
|
--restart unless-stopped \
|
|
--publish 3100:7745 \
|
|
--env TZ=Europe/Bucharest \
|
|
--volume /path/to/data/folder/:/data \
|
|
ghcr.io/hay-kot/homebox:latest
|
|
# ghcr.io/hay-kot/homebox:latest-rootless
|
|
|
|
```
|
|
|
|
## Docker-Compose
|
|
|
|
```yaml
|
|
version: "3.4"
|
|
|
|
services:
|
|
homebox:
|
|
image: ghcr.io/hay-kot/homebox:latest
|
|
# image: ghcr.io/hay-kot/homebox:latest-rootless
|
|
container_name: homebox
|
|
restart: always
|
|
environment:
|
|
- HBOX_LOG_LEVEL=info
|
|
- HBOX_LOG_FORMAT=text
|
|
- HBOX_WEB_MAX_UPLOAD_SIZE=10
|
|
volumes:
|
|
- homebox-data:/data/
|
|
ports:
|
|
- 3100:7745
|
|
|
|
volumes:
|
|
homebox-data:
|
|
driver: local
|
|
```
|
|
|
|
!!! note
|
|
If you use the `rootless` image, and instead of using named volumes you would prefer using a hostMount directly (e.g., `volumes: [ /path/to/data/folder:/data ]`) you need to `chown` the chosen directory in advance to the `65532` user (as shown in the Docker example above).
|
|
|
|
## Env Variables & Configuration
|
|
|
|
| Variable | Default | Description |
|
|
| ------------------------------------ | ---------------------- | ---------------------------------------------------------------------------------- |
|
|
| HBOX_MODE | production | application mode used for runtime behavior can be one of: development, production |
|
|
| HBOX_WEB_PORT | 7745 | port to run the web server on, if you're using docker do not change this |
|
|
| HBOX_WEB_HOST | | host to run the web server on, if you're using docker do not change this |
|
|
| HBOX_OPTIONS_ALLOW_REGISTRATION | true | allow users to register themselves |
|
|
| HBOX_OPTIONS_AUTO_INCREMENT_ASSET_ID | true | auto increments the asset_id field for new items |
|
|
| HBOX_OPTIONS_CURRENCY_CONFIG | | json configuration file containing additional currencie |
|
|
| HBOX_WEB_MAX_UPLOAD_SIZE | 10 | maximum file upload size supported in MB |
|
|
| HBOX_WEB_READ_TIMEOUT | 10 | Read timeout of HTTP sever |
|
|
| HBOX_WEB_WRITE_TIMEOUT | 10 | Write timeout of HTTP server |
|
|
| HBOX_WEB_IDLE_TIMEOUT | 30 | Idle timeout of HTTP server |
|
|
| HBOX_STORAGE_DATA | /data/ | path to the data directory, do not change this if you're using docker |
|
|
| HBOX_STORAGE_SQLITE_URL | /data/homebox.db?_fk=1 | sqlite database url, if you're using docker do not change this |
|
|
| HBOX_LOG_LEVEL | info | log level to use, can be one of: trace, debug, info, warn, error, critical |
|
|
| HBOX_LOG_FORMAT | text | log format to use, can be one of: text, json |
|
|
| HBOX_MAILER_HOST | | email host to use, if not set no email provider will be used |
|
|
| HBOX_MAILER_PORT | 587 | email port to use |
|
|
| HBOX_MAILER_USERNAME | | email user to use |
|
|
| HBOX_MAILER_PASSWORD | | email password to use |
|
|
| HBOX_MAILER_FROM | | email from address to use |
|
|
| HBOX_SWAGGER_HOST | 7745 | swagger host to use, if not set swagger will be disabled |
|
|
| HBOX_SWAGGER_SCHEMA | http | swagger schema to use, can be one of: http, https |
|
|
|
|
!!! tip "CLI Arguments"
|
|
If you're deploying without docker you can use command line arguments to configure the application. Run `homebox --help` for more information.
|
|
|
|
```sh
|
|
Usage: api [options] [arguments]
|
|
|
|
OPTIONS
|
|
--mode/$HBOX_MODE <string> (default: development)
|
|
--web-port/$HBOX_WEB_PORT <string> (default: 7745)
|
|
--web-host/$HBOX_WEB_HOST <string>
|
|
--web-max-upload-size/$HBOX_WEB_MAX_UPLOAD_SIZE <int> (default: 10)
|
|
--storage-data/$HBOX_STORAGE_DATA <string> (default: ./.data)
|
|
--storage-sqlite-url/$HBOX_STORAGE_SQLITE_URL <string> (default: ./.data/homebox.db?_fk=1)
|
|
--log-level/$HBOX_LOG_LEVEL <string> (default: info)
|
|
--log-format/$HBOX_LOG_FORMAT <string> (default: text)
|
|
--mailer-host/$HBOX_MAILER_HOST <string>
|
|
--mailer-port/$HBOX_MAILER_PORT <int>
|
|
--mailer-username/$HBOX_MAILER_USERNAME <string>
|
|
--mailer-password/$HBOX_MAILER_PASSWORD <string>
|
|
--mailer-from/$HBOX_MAILER_FROM <string>
|
|
--swagger-host/$HBOX_SWAGGER_HOST <string> (default: localhost:7745)
|
|
--swagger-scheme/$HBOX_SWAGGER_SCHEME <string> (default: http)
|
|
--demo/$HBOX_DEMO <bool>
|
|
--debug-enabled/$HBOX_DEBUG_ENABLED <bool> (default: false)
|
|
--debug-port/$HBOX_DEBUG_PORT <string> (default: 4000)
|
|
--options-allow-registration/$HBOX_OPTIONS_ALLOW_REGISTRATION <bool> (default: true)
|
|
--options-auto-increment-asset-id/$HBOX_OPTIONS_AUTO_INCREMENT_ASSET_ID <bool> (default: true)
|
|
--options-currency-config/$HBOX_OPTIONS_CURRENCY_CONFIG <string>
|
|
--help/-h
|
|
display this help message
|
|
```
|