Skip to content

Docker Installation ​

Secreto can be easily installed and run using Docker. This method is recommended for users who want a quick and straightforward way to deploy their own instance of Secreto with minimal setup.

Prerequisites ​

Before you begin, ensure that you have Docker installed on your system. You can download and install Docker from the official Docker website.

Rootless and Non-rootless Docker Images ​

Secreto provides both rootless and non-rootless Docker images. The rootless image, tagged as latest-rootless or <version>-rootless (e.g., 1.16.0-rootless), allows you to run the container without requiring root privileges. This is useful in environments where running containers as root is discouraged for security reasons.

The non-rootless image, tagged as latest or <version> (e.g., 1.16.0), does not require binding the user in Docker commands and can be used in scenarios where root privileges are acceptable.

Image Source ​

Secreto Docker images are published to the GitHub Container Registry (GHCR) at ghcr.io/kvaggone/secreto. Images are built for linux/amd64 and linux/arm64.

Basic Docker Run ​

To run Secreto using Docker, you can use the following command:

bash
docker run -d --name secreto --restart unless-stopped -p 8787:8787 ghcr.io/kvaggone/secreto

This command will download the Secreto image and start the application, making it accessible at http://localhost:8787.

Explanation of the Command ​

  • -d: Runs the container in detached mode (in the background).
  • --name secreto: Names the container "secreto" for easy identification.
  • --restart unless-stopped: Configures the container to always restart unless it is explicitly stopped.
  • -p 8787:8787: Maps port 8787 on your host to port 8787 in the container, making the application accessible on your local machine.
  • ghcr.io/kvaggone/secreto: Specifies the Docker image to use.

Docker with Volume Persistence ​

To ensure that your notes and settings are preserved even if the container is stopped or removed, you can run Secreto with volume persistence. Replace /path/to/local/data with the path to your local data directory:

bash
docker run -d --name secreto --restart unless-stopped -p 8787:8787 -v /path/to/local/data:/app/.data ghcr.io/kvaggone/secreto

For the rootless image, you can use the following command (specifying the latest-rootless tag and the user ID and group ID):

bash
docker run -d --name secreto --restart unless-stopped -p 8787:8787 -v /path/to/local/data:/app/.data --user $(id -u):$(id -g) ghcr.io/kvaggone/secreto:latest-rootless

Explanation of Additional Flags ​

  • -v /path/to/local/data:/app/.data: Maps a local directory to the container's data directory, ensuring that data is stored persistently on your host machine.
  • --user $(id -u):$(id -g): Ensures that the container runs with the same user ID and group ID as your current user, preventing potential permission issues with the mounted volume.

Managing the Docker Container ​

Once Secreto is running in a Docker container, you can manage it using the following commands:

Stopping the Container ​

To stop the Secreto container, run:

bash
docker stop secreto

Restarting the Container ​

To restart the container, use:

bash
docker start secreto

Removing the Container ​

If you need to remove the container, stop it first and then remove it with:

bash
docker stop secreto
docker rm secreto

Updating Secreto ​

To update your Secreto instance to the latest version, first remove the existing container, pull the latest image, and then run the container again:

bash
docker stop secreto
docker rm secreto

docker pull ghcr.io/kvaggone/secreto

# Run the container again
docker run -d --name secreto --restart unless-stopped -p 8787:8787 -v /path/to/local/data:/app/.data ghcr.io/kvaggone/secreto

This will ensure that you are using the latest version of Secreto with all your previous data intact.

Building the Image Yourself ​

If you prefer to build the image from source instead of pulling it:

bash
git clone https://github.com/kvaggone/secreto.git
cd secreto

# Non-rootless image
pnpm docker:build

# Rootless image
pnpm docker:build:rootless

Next Steps ​

Once you have Secreto up and running, you can explore configuration options to customize your instance further. For more advanced setups, consider using Docker Compose to manage your Secreto deployment.