Restyle self-hosting docs for Docker / Docker Compose

This commit is contained in:
Tuan Dang
2023-12-20 19:52:17 +07:00
parent c9d58ec77d
commit 69bbbfcfd8
2 changed files with 87 additions and 98 deletions
@@ -1,51 +1,54 @@
--- ---
title: "Docker Compose" title: "Docker Compose"
description: "Learn to install Infisical using our Docker Compose template" description: "Run Infisical with Docker Compose template"
--- ---
## Install Docker on your VM <Steps>
<Step title="Install Docker on your VM">
```bash ```bash
# Example in ubuntu # Example in ubuntu
apt-get update apt-get update
apt-get upgrade apt-get upgrade
apt install docker-compose apt install docker-compose
``` ```
</Step>
## Download the required files <Step title="Download required files">
2.1. Run the command below to download the `.env` file template.
```bash ```bash
# Download env file template
wget -O .env https://raw.githubusercontent.com/Infisical/infisical/main/.env.example wget -O .env https://raw.githubusercontent.com/Infisical/infisical/main/.env.example
```
# Download docker compose template 2.2. Run the command below to download the docker compose template.
```bash
wget -O docker-compose.yml https://raw.githubusercontent.com/Infisical/infisical/main/docker-compose.yml wget -O docker-compose.yml https://raw.githubusercontent.com/Infisical/infisical/main/docker-compose.yml
```
# Download nginx config 2.3. Run the command below to download the `nginx` config file.
```bash
mkdir nginx && wget -O ./nginx/default.conf https://raw.githubusercontent.com/Infisical/infisical/main/nginx/default.dev.conf mkdir nginx && wget -O ./nginx/default.conf https://raw.githubusercontent.com/Infisical/infisical/main/nginx/default.dev.conf
``` ```
## Update .env file </Step>
Tweak the `.env` according to your preferences. Refer to the available [environment variables](/self-hosting/configuration/envars) <Step title="Update the .env file">
Running Infisical requires a few environment variables to be set.
At minimum, Infisical requires that you set the variables `ENCRYPTION_KEY`, `AUTH_SECRET`, `MONGO_URL`, and `REDIS_URL` which you can read more about [here](/self-hosting/configuration/envars).
Tweak the `.env` accordingly.
```bash ```bash
# update environment variables like mongo login
nano .env nano .env
``` ```
</Step>
<Info> <Step title="Start Infisical">
Infisical assumes that you have configured HTTPS. If you didn't configure HTTPS, set `HTTPS_ENABLED` to `false` in the .env file to avoid frequent logouts. Finally, run the command below to get Infisical up and running (in detached mode).
</Info>
## Get the service up and running
```bash ```bash
# Start up services in detached mode
docker-compose -f docker-compose.yml up -d docker-compose -f docker-compose.yml up -d
``` ```
Your Infisical installation is complete and should be running on [http://localhost:80](http://localhost:80). Please note that the containers are not exposed to the internet and only bind to the localhost. It's up to you to configure a firewall, SSL certificates, and implement any additional security measures. Your Infisical installation is complete and should be running on port `80` or `http://localhost:80`.
</Step>
<Info> </Steps>
Once installation is complete, you will have to create the first account. No default account is provided.
</Info>
@@ -1,52 +1,33 @@
--- ---
title: "Docker" title: "Docker"
description: "Learn to install Infisical purely on docker" description: "Run Infisical with Docker"
--- ---
The Infisical standalone version combines all the essential components into a single container, making deployment and management more straightforward than other methods. Prerequisites:
- Basic knowledge of [Docker](https://www.docker.com/)
- Have Docker installed on your system. If not, follow the installation guide [here](https://docs.docker.com/get-docker/).
## Prerequisites <Steps>
<Step title="Pull the Infisical Docker image">
This guide assumes you have basic knowledge of Docker and have it installed on your system. If you don't have Docker installed, please follow the official installation guide [here](https://docs.docker.com/get-docker/). Run the following command in your terminal to pull the Infisical Docker image:
#### System requirements
To have a functional deployment, we recommended compute with **2GB of RAM** and **1 CPU**.
However, depending on your usage, you may need to further scale up system resources to meet demand.
## Pull the Infisical Docker image
Open your terminal or command prompt and enter the following command to pull the Infisical Docker image:
``` ```
docker pull infisical/infisical:latest docker pull infisical/infisical:latest
``` ```
</Step>
<Step title="Start Infisical">
2.1. Running Infisical requires a few environment variables to be set.
At minimum, Infisical requires that you set the variables `ENCRYPTION_KEY`, `AUTH_SECRET`, `MONGO_URL`, and `REDIS_URL`
which you can read more about [here](/self-hosting/configuration/envars).
## Run with docker Once you have added the required environment variables to your docker run command, execute it in your terminal to get Infisical up and running.
To run Infisical, we'll need to configure the required configs listed below.
Other configs can be found [here](../configuration/envars)
<ParamField query="ENCRYPTION_KEY" type="string" default="none" required> For example:
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
</ParamField>
<ParamField query="AUTH_SECRET" type="string" default="none" required>
Must be a random 32 byte base64 string. Can be generated with `openssl rand -base64 32`
</ParamField>
<ParamField query="MONGO_URL" type="string" default="none" required>
*TLS based connection string is not yet supported
</ParamField>
<ParamField query="REDIS_URL" type="string" default="none" required>
Redis connection string
</ParamField>
Once you have added the required environment variables to your docker run command, execute it in your terminal.
```bash ```bash
docker run -p 80:8080 \ docker run -p 80:8080 \
-e ENCRYPTION_KEY=f40c9178624764ad85a6830b37ce239a \ -e ENCRYPTION_KEY=f40c9178624764ad85a6830b37ce239a \
-e AUTH_SECRET=5239fea3a4720c0e524f814a540e14a2 \ -e AUTH_SECRET="q6LRi7c717a3DQ8JUxlWYkZpMhG4+RHLoFUVt3Bvo2U=" \
-e MONGO_URL="<>" \ -e MONGO_URL="<>" \
infisical/infisical:latest infisical/infisical:latest
``` ```
@@ -55,9 +36,14 @@ infisical/infisical:latest
The above environment variable values are only to be used as an example and should not be used in production The above environment variable values are only to be used as an example and should not be used in production
</Warning> </Warning>
## Verify the installation: 2.2. Once the container is running, verify the installation by opening your web browser and navigating to `http://localhost:80`.
Once the container is running, open a web browser and navigate to http://localhost:80. That's it! You have successfully installed the Infisical application using a single Docker image. </Step>
</Steps>
<Info> <AccordionGroup>
Once installation is complete, you will have to create the first account. No default account is provided. <Accordion title="What are the system requirements for running Infisical?">
</Info> To have a functional deployment, we recommended compute with 2GB of RAM and 1 CPU.
However, depending on your usage, you may need to further scale up system resources to meet demand.
</Accordion>
</AccordionGroup>