Files
2025-05-05 09:40:04 +02:00

139 lines
3.2 KiB
HCL

data "docker_registry_image" "hoarder" {
name = "ghcr.io/hoarder-app/hoarder"
}
resource "docker_image" "hoarder" {
name = data.docker_registry_image.hoarder.name
pull_triggers = [data.docker_registry_image.hoarder.sha256_digest]
}
data "docker_registry_image" "hoarder-chrome" {
name = "gcr.io/zenika-hub/alpine-chrome:latest"
}
resource "docker_image" "hoarder-chrome" {
name = data.docker_registry_image.hoarder-chrome.name
pull_triggers = [data.docker_registry_image.hoarder-chrome.sha256_digest]
}
data "docker_registry_image" "hoarder-meilisearch" {
name = "getmeili/meilisearch:v1.6"
}
resource "docker_image" "hoarder-meilisearch" {
name = data.docker_registry_image.hoarder-meilisearch.name
pull_triggers = [data.docker_registry_image.hoarder-meilisearch.sha256_digest]
}
resource "docker_network" "hoarder" {
name = "hoarder"
}
resource "docker_container" "hoarder" {
image = docker_image.hoarder.image_id
name = "hoarder"
hostname = "hoarder"
env = [
"MEILI_ADDR=http://meilisearch:7700",
"BROWSER_WEB_URL=http://chrome:9222",
"HOARDER_VERSION=release",
"NEXTAUTH_SECRET=j&natTM8L8u$&z",
"MEILI_MASTER_KEY=GM4ysMegcCoZUOrVxglbWzGJeN9O7CMWnZIaG9c_MSQ",
"NEXTAUTH_URL=https://hoarder.rescla.me",
"DATA_DIR=/data",
"ASSETS_DIR=/assets",
"DISABLE_SIGNUPS=true",
"OPENAI_API_KEY=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"
]
mounts {
target = "/data"
source = "/var/lib/containers/karakeep/data"
type = "bind"
}
mounts {
target = "/assets"
source = "/mnt/appdata/karakeep"
type = "bind"
}
restart = "always"
networks_advanced {
name = docker_network.container-public.name
ipv4_address = "192.168.3.15"
}
networks_advanced {
name = docker_network.hoarder.name
}
lifecycle {
ignore_changes = [
ulimit,
log_opts
]
}
}
resource "docker_container" "hoarder-chrome" {
image = docker_image.hoarder-chrome.image_id
name = "hoarder-chrome"
hostname = "chrome"
command = [
"--no-sandbox",
"--disable-gpu",
"--disable-dev-shm-usage",
"--remote-debugging-address=0.0.0.0",
"--remote-debugging-port=9222",
"--hide-scrollbars"
]
restart = "always"
networks_advanced {
name = docker_network.hoarder.name
}
lifecycle {
ignore_changes = [
ulimit,
log_opts
]
}
}
resource "docker_container" "hoarder-meilisearch" {
image = docker_image.hoarder-meilisearch.image_id
name = "hoarder-meilisearch"
hostname = "meilisearch"
env = [
"MEILI_ADDR=http://meilisearch:7700",
"HOARDER_VERSION=release",
"NEXTAUTH_SECRET=j&natTM8L8u$&z",
"MEILI_MASTER_KEY=GM4ysMegcCoZUOrVxglbWzGJeN9O7CMWnZIaG9c_MSQ",
"NEXTAUTH_URL=https://hoarder.rescla.me",
"MEILI_NO_ANALYTICS=true"
]
restart = "always"
mounts {
target = "/meili_data"
source = "/var/lib/containers/karakeep/data-meilisearch"
type = "bind"
}
networks_advanced {
name = docker_network.hoarder.name
}
lifecycle {
ignore_changes = [
ulimit,
log_opts
]
}
}