* feat: Initial Analytics stuff * chore: add documentation of new feature * fix: minor issues * chore: add some new doc pages around analytics. * fix: iframe height? * fix: minor some PR stuff * chore: add version and virtualization type to analytics * Update privacy.md * [VNEXT] feat: Multi-DB type support (#291) * feat: Multi-DB type URL formats and config * fix: remove legacy sqlite path config and minor other things * fix: dumb eslint issues * fix: dumb eslint issues * fix: application can be tested with sqlite * fix: minor config formatting * chore: some cleanup * feat: postgres migration creation now works The migration creation for postgres now works properly. Removed MySQL support, having too many issues with it at this time. * chore: revert some strings back to bytes as they should be * feat: improve languages support * feat: add locale time ago formatting and the local name for the language in language dropdown * Update FUNDING.yml * chore: remove some more mysql stuff * fix: coderabbit security recommendations * fix: validate postgres sslmode * Update migrations.go * fix: postgres migration creation now works * fix: errors in raw sql queries * fix: lint error, and simpler SQL query * fix: migrations directory string * fix: stats related test * fix: sql query * Update TextArea.vue * Update TextField.vue * chore: run integration testing on multiple postgresql versions * chore: jobs should run for vnext branch PRs * fix: missed $ for Postgres testing * fix: environment variable for db ssl mode * fix: lint issue from a merge * chore: trying to fix postgresql testing * chore: trying to fix postgresql testing * fix: trying to fix postgresql testing * fix: trying to fix postgresql testing --------- Co-authored-by: tonya <tonya@tokia.dev> * fix: publish docker vnext branch * Add upgrade guide documentation * chore: add new config options to documentation * Update vnext (#314) * feat: make 404 follow theme and add a return home page * feat: sanitise translations when using v-html * chore: Add native API docs to website * chore: remove try it button from api docs --------- Co-authored-by: tonyaellie <tonya@tokia.dev> * Update Dockerfile Update dockerfile to test the theory of data folder breaking in vnext * fix: broken docker image * fix: statistics * feat: support mm, cm and inches for label generation * [VNEXT] feat: Multi-DB type support (#291) * feat: Multi-DB type URL formats and config * fix: remove legacy sqlite path config and minor other things * fix: dumb eslint issues * fix: dumb eslint issues * fix: application can be tested with sqlite * fix: minor config formatting * chore: some cleanup * feat: postgres migration creation now works The migration creation for postgres now works properly. Removed MySQL support, having too many issues with it at this time. * chore: revert some strings back to bytes as they should be * feat: improve languages support * feat: add locale time ago formatting and the local name for the language in language dropdown * Update FUNDING.yml * chore: remove some more mysql stuff * fix: coderabbit security recommendations * fix: validate postgres sslmode * Update migrations.go * fix: postgres migration creation now works * fix: errors in raw sql queries * fix: lint error, and simpler SQL query * fix: migrations directory string * fix: stats related test * fix: sql query * Update TextArea.vue * Update TextField.vue * chore: run integration testing on multiple postgresql versions * chore: jobs should run for vnext branch PRs * fix: missed $ for Postgres testing * fix: environment variable for db ssl mode * fix: lint issue from a merge * chore: trying to fix postgresql testing * chore: trying to fix postgresql testing * fix: trying to fix postgresql testing * fix: trying to fix postgresql testing --------- Co-authored-by: tonya <tonya@tokia.dev> * fix: publish docker vnext branch * Add upgrade guide documentation * chore: add new config options to documentation * Update Dockerfile Update dockerfile to test the theory of data folder breaking in vnext * fix: broken docker image * fix: statistics * feat: support mm, cm and inches for label generation * Update privacy.md * chore: fix merge with main * fix: Docs menu * fix: Docs * fix: Fix privacy policy layout * fix: put stats under it's own unlikely used URL * Forgot to add to configure.md --------- Co-authored-by: tonya <tonya@tokia.dev> Co-authored-by: Katos <7927609+katosdev@users.noreply.github.com>
4.2 KiB
Installation
There are two main ways to run the application.
- As a Docker container.
- Using the correct executable for your platform by downloading it from the Releases.
::: info Configuration Options The application can be configured using environment variables. You can find a list of all available options in the configuration section. :::
Docker
The following instructions assume Docker is already installed on your system. See (Docker's official installation guide)
The official image is ghcr.io/sysadminsmedia/homebox:latest. For each image there are two tags, respectively the regular tag and $TAG-rootless, which uses a non-root image.
Docker Run
Great for testing out the application, but not recommended for stable use. Checkout the docker-compose below for the recommended deployment.
# 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 \
--env HBOX_OPTIONS_ALLOW_ANALYTICS=false \
--volume /path/to/data/folder/:/data \
ghcr.io/sysadminsmedia/homebox:latest
# ghcr.io/sysadminsmedia/homebox:latest-rootless
Docker Compose
- Create a
docker-compose.ymlfile.
services:
homebox:
image: ghcr.io/sysadminsmedia/homebox:latest
# image: ghcr.io/sysadminsmedia/homebox:latest-rootless
container_name: homebox
restart: always
environment:
- HBOX_LOG_LEVEL=info
- HBOX_LOG_FORMAT=text
- HBOX_WEB_MAX_FILE_UPLOAD=10
# Please consider allowing analytics to help us improve Homebox (basic computer information, no personal data)
- HBOX_OPTIONS_ALLOW_ANALYTICS=false
volumes:
- homebox-data:/data/
ports:
- 3100:7745
volumes:
homebox-data:
driver: local
::: info
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).
:::
::: warning
If you have previously set up docker compose with the HBOX_WEB_READ_TIMEOUT, HBOX_WEB_WRITE_TIMEOUT, or HBOX_IDLE_TIMEOUT options, and you were previously using the hay-kot image, please note that you will have to add an s for seconds or m for minutes to the end of the integers. A dependency update removed the defaultation to seconds and it now requires an explicit duration time.
:::
- While in the same folder as docker-compose.yml, start the container by running:
docker compose up --detach
- Navigate to
http://server.local.ip.address:3100/to access the web interface. (replace with the right IP address).
You can learn more about Docker by reading the official Docker documentation.
Windows
- Download the appropriate release for your CPU architecture from the releases page on GitHub.
- Extract the archive.
- Run
homebox.exe. This will start the server on port 7745. - You can test it by accessing http://localhost:7745.
Linux
- Download the appropriate release for your CPU architecture from the releases page on GitHub.
- Extract the archive.
- Run the
homeboxexecutable. - The web interface will be accessible on port 7745 by default. Access the page by navigating to
http://server.local.ip.address:7745/(replace with the right ip address)
macOS
- Download the appropriate release for your CPU architecture from the releases page on GitHub. (Use
homebox_Darwin_x86_64.tar.gzfor Intel-based macs andhomebox_Darwin_arm64.tar.gzfor Apple Silicon) - Extract the archive.
- Run the
homeboxexecutable. - The web interface will be accessible on port 7745 by default. Access the page by navigating to
http://local.ip.address:7745/(replace with the right ip address)