migrate
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
|
||||
---
|
||||
services:
|
||||
gitlab:
|
||||
image: docker.io/gitlab/gitlab-ce:latest
|
||||
|
||||
container_name: gitlab
|
||||
|
||||
shm_size: '256m'
|
||||
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
volumes:
|
||||
- /home/miker/docker/gitlab/config:/etc/gitlab
|
||||
- /home/miker/docker/gitlab/logs:/var/log/gitlab
|
||||
- /home/miker/docker/gitlab/data:/var/opt/gitlab
|
||||
|
||||
ports:
|
||||
# --> (Optional) Remove when using traefik...
|
||||
- "8080:80"
|
||||
- "8443:443"
|
||||
- '222:22'
|
||||
|
||||
restart: unless-stopped
|
||||
|
||||
# Lookup password assigned at install
|
||||
# sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
To use the GitLab runner in GitLab, you need to configure it. For correct configuration, we will need a token copied from the portal. To do this, go to the address: http://localhost:8080/admin/runners and click the Copy token button.
|
||||
|
||||
In the next step, it goes to the console and run the following command:
|
||||
|
||||
> docker exec -it gitlab-runner gitlab-runner register --url "http://gitlab-ce" --clone-url "http://gitlab-ce"
|
||||
|
||||
After launching, a configuration module will appear. The module provides the following information:
|
||||
|
||||
Enter the GitLab instance URL: confirm the entered value (click enter)
|
||||
Enter the registration token: enter the token copied before.
|
||||
Enter a description for the runner: enter the name of the runner, e.g. docker-runner
|
||||
Enter tags for the runner: leave the field blank here
|
||||
Enter an executor: enter docker here
|
||||
Enter the default Docker image: here we provide the default docker image, e.g. maven: latest
|
||||
|
||||
After proper configuration, we should see confirmation Runner registred successfully:
|
||||
|
||||
In addition to the basic configuration, we also need to allow access for containers launched from the runner to the virtual network in which GitLab operates. To do this, we run the editor (e.g. vi)
|
||||
|
||||
> sudo vi gitlab/gitlab-runner/config.toml
|
||||
|
||||
Then we add new line to the end of the runner configuration: network_mode = “gitlab-network”
|
||||
|
||||
To check if the runner is available from the GitLab level, go to the following address:http://localhost:8080/admin/runners
|
||||
|
||||
We create our first repository
|
||||
|
||||
After setting up the runner, we can create our first repository. To do this, go to the page: http://localhost:8080/projects/new and click Import project.
|
||||
|
||||
Na następnym ekranie wybieramy Import project from: Repo from URL. Następnie podajemy w Git repository URL adress: https://github.com/czerniga/helloworld.git. Na końcu zatwierdzamy klikając Create project.
|
||||
|
||||
On the next screen, select Import project from: Repo from URL. Then we provide the Git repository URL address: https://github.com/czerniga/helloworld.git. Finally, confirm by clicking Create project.
|
||||
|
||||
After a while you should have the first repository copied to your GitLab.
|
||||
|
||||
We create the CI/CD pipeline
|
||||
|
||||
To create a CI/CD pipeline for the project, click the main menu on the left, CI/CD, and then Editor. An option to create a .gitlab-ci.yml file, which will contain our pipeline definitions, will appear on the screen. This file will be created in the Git repository.
|
||||
|
||||
On the new screen we can see our pipeline editor. In the editor, paste the following content:
|
||||
|
||||
image: maven:latest
|
||||
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
|
||||
build-job:
|
||||
stage: build
|
||||
script:
|
||||
- echo "Compiling the code..."
|
||||
- mvn clean package
|
||||
- echo "Compile complete."
|
||||
artifacts:
|
||||
paths:
|
||||
- target
|
||||
|
||||
test-job:
|
||||
stage: test
|
||||
dependencies:
|
||||
- build-job
|
||||
script:
|
||||
- ls -al
|
||||
- echo "Running tests"
|
||||
- java -cp target/helloworld-1.1.jar com.coveros.demo.helloworld.HelloWorld
|
||||
|
||||
The above definition describes how the CI / CD process should work. The most important elements are:
|
||||
|
||||
image: docker image that we will use to build our project
|
||||
stages: a list of our process steps
|
||||
build-job: the first step in our process to build our project. Additionally, we save the artifacts for use in the next step
|
||||
test-job: the second step to run our project
|
||||
|
||||
After pasting our file, confirm the changes by clicking Commit changes.
|
||||
|
||||
Once approved, GitLab will launch the process. To check its results, go to CI/CD -> Pipelines in the menu on the left. On the screen we should see that our first task has already been started.
|
||||
|
||||
We can go to the details of this task by clicking on the pending button or the build number #1
|
||||
|
||||
After a while, the task should be built and tested.
|
||||
How to install GitLab using Docker Compose
|
||||
How to install GitLab using Docker Compose
|
||||
|
||||
Congratulations, you have just created your first CI/CD job in GitLab!
|
||||
@@ -0,0 +1,22 @@
|
||||
# -- Change GitLab settings here...
|
||||
external_url 'http://192.168.2.3' # <-- Replace with your GitLab FQDN
|
||||
|
||||
# Setting Timezone
|
||||
gitlab_rails['time_zone'] = 'America/New_York'
|
||||
|
||||
# -- (Optional) Change GitLab Shell settings here...
|
||||
gitlab_rails['gitlab_shell_ssh_port'] = 222
|
||||
|
||||
# -- Change internal web service settings here...
|
||||
letsencrypt['enable'] = false
|
||||
nginx['listen_port'] = 80
|
||||
nginx['listen_https'] = false
|
||||
|
||||
# EMAIL SMTP Seetings
|
||||
gitlab_rails['smtp_enable'] = true
|
||||
gitlab_rails['smtp_address'] = "mail.mmcfetridge.net"
|
||||
gitlab_rails['smtp_port'] = 587
|
||||
gitlab_rails['smtp_user_name'] = "miker@mmcfetridge.net"
|
||||
gitlab_rails['smtp_password'] = "!Sucyetat123"
|
||||
gitlab_rails['smtp_authentication'] = "login"
|
||||
gitlab_rails['smtp_enable_starttls_auto'] = true
|
||||
@@ -0,0 +1,16 @@
|
||||
MYSQL_ROOT_PASSWORD=Lzh8CMp3K0c84n
|
||||
MYSQL_DATABASE=gitea
|
||||
MYSQL_USER=gitea
|
||||
MYSQL_PASSWORD=Lzh8CMp3K0c84n
|
||||
|
||||
GITEA_APP_NAME=Gitea
|
||||
GITEA__database__DB_TYPE=mysql
|
||||
GITEA__database__HOST=db:3306
|
||||
GITEA__database__NAME=gitea
|
||||
GITEA__database__USER=gitea
|
||||
GITEA__database__PASSWD=VEoE4sTtt8oQqR47rtGkcry4HKYtcOZU
|
||||
|
||||
GITEA_INSTANCE_URL=https://gitea.mikemcfetridge.com
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN=skQ2WOtD22Oy0g
|
||||
GITEA_RUNNER_NAME=local-runner
|
||||
GITEA_RUNNER_LABELS=ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye,ubuntu-20.04:docker://node:16-bullseye
|
||||
@@ -0,0 +1,128 @@
|
||||
Gitea Install Guide
|
||||
|
||||
Okay, let's break down the user's request first. They want me to explain a Docker Compose file and provide installation steps. The provided context shows two different Docker Compose configurations - one for Gitea with MySQL database using standard images, and another for MariaDB with npm-db service.
|
||||
|
||||
Hmm, interesting that they're asking about both files though the user didn't explicitly mention which one. Looking at Context 0: It's a Gitea setup file with three services (db, gitea, runner) all in a bridge network called 'gitea'. This seems to be for setting up Git hosting services locally.
|
||||
|
||||
Context 1 appears different - it mentions npm-db and MariaDB with volume './data/mysql:/var/lib/mysql', which suggests this might be for Node.js related projects. The user didn't specify which file they're referring to though.
|
||||
|
||||
The user's follow-up question is actually quite broad since we don't know exactly which service configuration they need help with. They want both an explanation and installation instructions, but without knowing the exact use case (Git server vs database setup), I can only focus on the first context provided about Gitea.
|
||||
|
||||
I should explain that while they requested one docker-compose file, two different configurations were provided in the contexts - one for Git hosting services and another possibly related to npm with MariaDB. Since we don't know which was originally intended, I'll focus on explaining the available information (the Gitea configuration) as much as possible.
|
||||
|
||||
The user seems technically proficient enough to handle Docker setups but might be looking for clarification about how specific components interact in this environment. They're likely setting up some development or testing infrastructure and need guidance.
|
||||
</think>
|
||||
Okay, here is a technical explanation of the `docker-compose.yml` content provided (Context 0), followed by step-by-step instructions on how to use it.
|
||||
|
||||
**Technical Explanation**
|
||||
|
||||
This Docker Compose file (`docker-compose.yml`) defines three distinct services within named networks called "gitea":
|
||||
|
||||
1. **Database Service (`db`):**
|
||||
* Uses the official MySQL image version 8.
|
||||
* Container Name: `gitea-db`
|
||||
* Restart Policy: `unless-stopped` - The container will automatically restart if it stops, unless explicitly stopped by an administrator command or Docker daemon rules (like on shutdown).
|
||||
* Environment Variables: Loaded from a `.env` file and sets standard database credentials (`MYSQL_ROOT_PASSWORD`, `MYSQL_DATABASE`, etc.).
|
||||
* Volumes: Mounts the host's current directory (`./mysql`) into the container's default MySQL data location (`/var/lib/mysql`). This stores the Dockerized database files on your host machine for persistence.
|
||||
* Networks: Connects to the "gitea" bridge network so other services can communicate with it via its internal name ("db").
|
||||
* Healthcheck: Uses `mysqladmin ping` command against the local MySQL server (`localhost`) using user and password from environment variables. Checks occur every 10 seconds, wait up to 5s for a response, retry 5 times (total 50s). If it fails, the service is marked unhealthy.
|
||||
|
||||
2. **Gitea Service (`gitea`):**
|
||||
* Uses the official Gitea image from Docker Hub (`gitea/gitea:latest`). This sets up a Git server.
|
||||
* Container Name: `gitea`
|
||||
* Restart Policy: `unless-stopped` - Same behavior as the database service regarding automatic restarts.
|
||||
* Environment Variables: Loaded from `.env`. It requires user ID and group ID (`USER_UID=1000`, `USER_GID=1000`) for proper file ownership within its data volume. The crucial Gitea configuration variables are set here, pointing it to the database server ("db"), specifying the DB type (likely "mysql", loaded from `.env`), and providing credentials (`GITEA__database__...`). It also sets a higher priority port mapping for access.
|
||||
* Volumes: Mounts two directories on the host:
|
||||
- `./gitea:/data`: Stores Gitea's application data (repositories, configuration files, logs) in `/data` within the container. Host directory is `./gitea`.
|
||||
- `/etc/localtime:/etc/localtime:ro`: Makes this container use your host system's timezone setting.
|
||||
* Networks: Connects to the "gitea" bridge network.
|
||||
* Depends On: The service definition includes a condition (`service_healthy`) that ensures it waits for the `db` service (named dependency) to pass its health checks before starting. Gitea itself uses an internal healthcheck via `curl`.
|
||||
* Ports:
|
||||
- `"3000:3000"`: Exposes Gitea's web UI port from container 3000 to host 3000.
|
||||
- `"222:22"`: Exposes the SSH server port from container 22 (default for Docker image) to host 222. This allows accessing Git repositories via SSH clients.
|
||||
|
||||
3. **Gitea Runner Service (`runner`):**
|
||||
* Uses a dedicated Gitea CI runner image (`gitea/act_runner:latest`).
|
||||
* Container Name: `gitea-runner`
|
||||
* Restart Policy: `unless-stopped`.
|
||||
* Depends On: Will wait for the `gitea` service (named dependency) to be healthy before starting.
|
||||
* Environment Variables: Loaded from `.env`. Key variables include Gitea's instance URL (`GITEA_INSTANCE_URL`) and a registration token (`GITEA_RUNNER_REGISTRATION_TOKEN`). It also specifies its name, labels for job routing, and log level (trace). Crucially, it sets the `GITEA_RUNNER_JOB_CONTAINER_NETWORK` to "gitea".
|
||||
* Volumes: Mounts three directories:
|
||||
- `./runner-data:/data`: Stores CI artifacts or runner-specific data in a subdirectory of Gitea's main directory.
|
||||
- `/config.yaml`: This line seems incorrect as provided. Assuming it means mounting the host-side generated configuration file (which is typically done elsewhere) but based on the pattern, it should likely be `- ./runner-config.yaml:/config.yaml`. The `act_runner` *needs* this config file internally, so providing one via volume mount from `./runner-config.yaml` would configure it appropriately. This directory (`./runner-data`) exists and holds persistent data for jobs.
|
||||
- `/var/run/docker.sock:/var/run/docker.sock`: Mounts the host's Docker socket into this container. The Gitea runner executes CI commands within a separate Docker container (using `act`). Access to the host's Docker socket is necessary for it to perform these actions (`docker run ...`).
|
||||
|
||||
**Common Elements:**
|
||||
|
||||
* `.env`: Used by multiple services to load environment variables, likely containing secrets and configuration values.
|
||||
* `gitea` network: A bridge network connecting all three services. They communicate via their internal names (like `db`, `gitea`, `runner`) on this network.
|
||||
|
||||
**Purpose:** This setup creates a self-contained local instance of Gitea and its CI runner, with an accompanying MySQL database. It's useful for testing Git functionalities locally or setting up a personal/private Git server without needing to install the software directly on the host OS.
|
||||
|
||||
---
|
||||
|
||||
**Step-by-Step Installation Guide (Based on Context 0)**
|
||||
|
||||
This guide assumes you want to set up Gitea and its runner using Docker Compose with a MySQL database. The instructions are for this specific configuration file structure shown in Context 0.
|
||||
|
||||
1. **Prerequisites:**
|
||||
* Ensure your host machine meets the [requirements](https://docs.gitea.com/installation/requirements) for running Gitea.
|
||||
* Install [Docker Engine](https://docs.docker.com/engine/install/) and [Docker Compose V2](https://docs.docker.com/compose/v2/) on your system (Windows, macOS, Linux).
|
||||
* Have a `.env` file ready or create one. This file should contain the necessary environment variables for Gitea and MySQL.
|
||||
* Example contents of your `.env` file might include:
|
||||
```
|
||||
MYSQL_ROOT_PASSWORD=your_root_password
|
||||
MYSQL_DATABASE=gitea_db_name # Name for the database used by Gitea
|
||||
MYSQL_USER=mysql_user # Database user (Gitea)
|
||||
MYSQL_PASSWORD=mysql_password # Password for that user
|
||||
|
||||
GITEA_APP_NAME=Gitea_Instance_Name # Can be set here or in .env file, but also might default to image name.
|
||||
GITEA__database__DB_TYPE=mysql
|
||||
GITEA__database__HOST=db:3306 # "db" is the internal hostname for the MySQL service (from context)
|
||||
GITEA__database__NAME=gitea_db_name # Same as MYSQL_DATABASE above, *or* this might override it. Check consistency.
|
||||
GITEA__database__USER=mysql_user # Same as MYSQL_USER
|
||||
GITEA__database__PASSWD=mysql_password # Same as MYSQL_PASSWORD
|
||||
|
||||
# For the runner (optional if you don't need CI)
|
||||
GITEA_INSTANCE_URL=http://localhost:3000 # Should match your host mapping for gitea service (typically :3000)
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN=your_token
|
||||
```
|
||||
|
||||
2. **Prepare the Directory Structure:**
|
||||
* Create a directory where you want to run this setup.
|
||||
* Copy both `docker-compose.yml` and `.env` files into that directory from wherever they are located (ensure Context 0's `docker-compose.yml` is used).
|
||||
* Example structure:
|
||||
```
|
||||
/path/to/my/gitea/installation/
|
||||
├── docker-compose.yml
|
||||
├── .env
|
||||
├── gitea/ # Will be created by the first run. Contains Gitea data (repositories, logs)
|
||||
└── runner-data/ # Will be created by the Gitea runner container when it starts for the first time.
|
||||
```
|
||||
* Alternatively, if you are using a single `docker-compose.yml` file from Context 0 and want to manage other services later, ensure your chosen directory is correct.
|
||||
|
||||
3. **Start the Services:**
|
||||
* Open a terminal or command prompt in the directory containing `docker-compose.yml`.
|
||||
* Run the following command:
|
||||
```
|
||||
docker compose up -d
|
||||
```
|
||||
This command starts all three defined services (`db`, `gitea`, and `runner`) in detached mode (background).
|
||||
|
||||
4. **Verify Service Startup:**
|
||||
* Check if the database service is healthy first, as it's critical for Gitea:
|
||||
```
|
||||
docker compose ps # Lists running containers
|
||||
docker compose inspect gitea-db | grep -A10 'healthcheck.*Status' # Inspect container details to see health status (requires Docker Compose V2)
|
||||
```
|
||||
* Check the logs of all services if necessary for startup errors:
|
||||
```
|
||||
docker compose logs # Shows logs from all services
|
||||
# Or specific one, e.g., `docker compose logs gitea` or `docker compose logs runner`
|
||||
```
|
||||
|
||||
5. **Accessing Gitea:**
|
||||
* Open a web browser and navigate to `http://localhost:3000`. The default username is `admin`, password is `root`.
|
||||
* You might see an initial setup page if this is the first run.
|
||||
|
||||
**Note:** This configuration maps the SSH port (22 for container) to host 222. Remember that ports below 1024 often require root privileges on Linux systems, but Docker Compose handles these mappings appropriately regardless of OS usually.
|
||||
@@ -0,0 +1,118 @@
|
||||
---
|
||||
networks:
|
||||
internal:
|
||||
name: internal
|
||||
driver: bridge
|
||||
external:
|
||||
name: external
|
||||
driver: bridge
|
||||
|
||||
services:
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# 1. THE REPOSITORY: Gitea Backend
|
||||
# -------------------------------------------------------------------
|
||||
db:
|
||||
image: mysql:8
|
||||
container_name: gitea-db
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
volumes:
|
||||
- ./mysql:/var/lib/mysql
|
||||
networks:
|
||||
- internal
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mysqladmin ping -h localhost -u${MYSQL_USER} -p${MYSQL_PASSWORD}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# 2. THE REPOSITORY: Gitea Frontend
|
||||
# -------------------------------------------------------------------
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- GITEA__server__SSH_PORT=222
|
||||
- GITEA__server__SSH_LISTEN_PORT=22
|
||||
- GITEA__server__SSH_DOMAIN=mygitea.mikemcfetridge.com
|
||||
- GITEA_APP_NAME=${GITEA_APP_NAME}
|
||||
- GITEA__database__DB_TYPE=${GITEA__database__DB_TYPE}
|
||||
- GITEA__database__HOST=${GITEA__database__HOST}
|
||||
- GITEA__database__NAME=${GITEA__database__NAME}
|
||||
- GITEA__database__USER=${GITEA__database__USER}
|
||||
- GITEA__database__PASSWD=${GITEA__database__PASSWD}
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
volumes:
|
||||
- ./gitea:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
networks:
|
||||
- internal
|
||||
- external
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000"]
|
||||
interval: 10s
|
||||
retries: 3
|
||||
timeout: 10s
|
||||
start_period: 30s
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# 3. THE GITEA runner using docker compose
|
||||
# -------------------------------------------------------------------
|
||||
runner:
|
||||
image: gitea/act_runner:latest
|
||||
container_name: gitea-runner
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
gitea:
|
||||
condition: service_healthy
|
||||
env_file: .env
|
||||
environment:
|
||||
- GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL}
|
||||
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_REGISTRATION_TOKEN}
|
||||
- GITEA_RUNNER_NAME=${GITEA_RUNNER_NAME}
|
||||
- GITEA_RUNNER_LABELS=${GITEA_RUNNER_LABELS}
|
||||
- GITEA_RUNNER_LOG_LEVEL=trace
|
||||
- GITEA_RUNNER_JOB_CONTAINER_NETWORK=external
|
||||
volumes:
|
||||
- ./runner-data:/data
|
||||
- ./runner-config.yaml:/config.yaml
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
networks:
|
||||
- internal
|
||||
- external
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# 4. THE SECURITY LAYER: Docker Socket Proxy
|
||||
# -------------------------------------------------------------------
|
||||
docker-proxy:
|
||||
image: tecnativa/docker-socket-proxy:latest
|
||||
container_name: docker_proxy
|
||||
privileged: true
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
environment:
|
||||
- CONTAINERS=1
|
||||
- NETWORKS=1
|
||||
- SERVICES=1
|
||||
- VOLUMES=1
|
||||
- POST=1 # Allows Semaphore to create/start components
|
||||
networks:
|
||||
- external
|
||||
restart: unless-stopped
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
services:
|
||||
couchdb-obsidian-livesync:
|
||||
container_name: obsidian-livesync
|
||||
# image: couchdb:3.3.3 # Specify a stable CouchDB version
|
||||
image: 'docker.io/oleduc/docker-obsidian-livesync-couchdb:master'
|
||||
environment:
|
||||
# User and password for CouchDB admin access
|
||||
- COUCHDB_USER=miker
|
||||
- COUCHDB_PASSWORD=tw9222dvO91ZHb
|
||||
- COUCHDB_DATABASE=obsidian
|
||||
- SERVER_DOMAIN=https://obsidian.mikemcfetridge.com
|
||||
# Optional: Set PUID, PGID, UMASK, and TZ for user/group permissions and timezone
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- UMASK=0022
|
||||
- TZ=America/New_York # Adjust timezone as needed
|
||||
volumes:
|
||||
# Mount a local directory for CouchDB data persistence
|
||||
- /home/miker/docker/obsidian/data:/opt/couchdb/data
|
||||
# Mount a local directory for CouchDB configuration files
|
||||
- /home/miker/docker/obsidian/config:/opt/couchdb/etc/local.d
|
||||
ports:
|
||||
# Map CouchDB's default port 5984 to the host machine
|
||||
- "5984:5984"
|
||||
restart: unless-stopped # Ensure the container restarts automatically unless explicitly stopped
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
services:
|
||||
obsidian:
|
||||
image: lscr.io/linuxserver/obsidian:latest
|
||||
container_name: obsidian
|
||||
security_opt:
|
||||
- seccomp:unconfined #optional
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=America/New_York
|
||||
volumes:
|
||||
- ./config:/config
|
||||
ports:
|
||||
- 3000:3000
|
||||
- 3001:3001
|
||||
devices:
|
||||
- /dev/dri:/dev/dri #optional
|
||||
shm_size: "1gb"
|
||||
restart: always
|
||||
# used to place in the NPM / traefik network so they can talk with each other.
|
||||
networks:
|
||||
- proxy
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
@@ -0,0 +1,7 @@
|
||||
RACKPAD_IMAGE=ghcr.io/kobii-git/rackpad
|
||||
RACKPAD_TAG=latest
|
||||
RACKPAD_PORT=3850
|
||||
MONITOR_INTERVAL_MS=300000
|
||||
TRUST_PROXY=0
|
||||
TRUSTED_HOSTS=
|
||||
TRUSTED_ORIGINS=
|
||||
@@ -0,0 +1,58 @@
|
||||
services:
|
||||
rackpad:
|
||||
image: ${RACKPAD_IMAGE:-ghcr.io/kobii-git/rackpad}:${RACKPAD_TAG:-1.5.2}
|
||||
container_name: rackpad
|
||||
init: true
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
HOST: 0.0.0.0
|
||||
PORT: 3000
|
||||
DATABASE_PATH: /data/rackpad.db
|
||||
MONITOR_INTERVAL_MS: ${MONITOR_INTERVAL_MS:-300000}
|
||||
TRUST_PROXY: ${TRUST_PROXY:-0}
|
||||
TRUSTED_HOSTS: ${TRUSTED_HOSTS:-}
|
||||
TRUSTED_ORIGINS: ${TRUSTED_ORIGINS:-}
|
||||
APP_URL: ${APP_URL:-}
|
||||
OIDC_ENABLED: ${OIDC_ENABLED:-0}
|
||||
OIDC_ISSUER_URL: ${OIDC_ISSUER_URL:-}
|
||||
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:-}
|
||||
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET:-}
|
||||
OIDC_REDIRECT_URI: ${OIDC_REDIRECT_URI:-}
|
||||
OIDC_LABEL: ${OIDC_LABEL:-OIDC}
|
||||
OIDC_DEFAULT_ROLE: ${OIDC_DEFAULT_ROLE:-viewer}
|
||||
OIDC_DEBUG: ${OIDC_DEBUG:-0}
|
||||
OIDC_ADMIN_USERS: ${OIDC_ADMIN_USERS:-}
|
||||
OIDC_EDITOR_USERS: ${OIDC_EDITOR_USERS:-}
|
||||
OIDC_VIEWER_USERS: ${OIDC_VIEWER_USERS:-}
|
||||
OIDC_ADMIN_GROUPS: ${OIDC_ADMIN_GROUPS:-}
|
||||
OIDC_EDITOR_GROUPS: ${OIDC_EDITOR_GROUPS:-}
|
||||
OIDC_VIEWER_GROUPS: ${OIDC_VIEWER_GROUPS:-}
|
||||
OUI_AUTO_UPDATE: ${OUI_AUTO_UPDATE:-1}
|
||||
DISCOVERY_MAC_SCAN_MODE: ${DISCOVERY_MAC_SCAN_MODE:-auto}
|
||||
ports:
|
||||
- "${RACKPAD_PORT:-3000}:3000"
|
||||
volumes:
|
||||
- rackpad_data:/data
|
||||
read_only: true
|
||||
tmpfs:
|
||||
- /tmp
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"node",
|
||||
"-e",
|
||||
"fetch('http://127.0.0.1:3000/api/health').then((res) => process.exit(res.ok ? 0 : 1)).catch(() => process.exit(1))",
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
|
||||
volumes:
|
||||
rackpad_data:
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
services:
|
||||
trilium:
|
||||
image: zadam/trilium:latest
|
||||
hostname: trilium
|
||||
container_name: trilium
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /home/miker/docker/trillium/data:/home/node/trilium-data
|
||||
ports:
|
||||
- '8180:8080'
|
||||
Reference in New Issue
Block a user