diff --git a/software-development/code-server/.gitignore b/productivity/code-server/.gitignore similarity index 100% rename from software-development/code-server/.gitignore rename to productivity/code-server/.gitignore diff --git a/software-development/code-server/README.md b/productivity/code-server/README.md similarity index 100% rename from software-development/code-server/README.md rename to productivity/code-server/README.md diff --git a/software-development/code-server/docker-compose.yml.example b/productivity/code-server/docker-compose.yml.example similarity index 100% rename from software-development/code-server/docker-compose.yml.example rename to productivity/code-server/docker-compose.yml.example diff --git a/productivity/karakeep/.gitignore b/productivity/karakeep/.gitignore new file mode 100644 index 0000000..078ab07 --- /dev/null +++ b/productivity/karakeep/.gitignore @@ -0,0 +1,3 @@ +karakeep.env +meili.env + diff --git a/productivity/karakeep/README.md b/productivity/karakeep/README.md new file mode 100644 index 0000000..3c1357c --- /dev/null +++ b/productivity/karakeep/README.md @@ -0,0 +1,37 @@ +# Karakeep +An AI powered notes, bookmarks, everything knowledge base. + +## Setup + +### General +1. (If not using checked in Dockerfile) Use the Dockerfile from Karakeep: +``` +wget https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.yml +``` + +2. This is what I changed from their base Dockerfile to get a runnable container when you checkout the repo: +- Convert exposed ports to traefik labels for the main container. +- Introduce Traefik network + create karakeep network for the containers to talk on. +- Convert volumes to bind mounts on disk. +- Convert to using env files instead of manually providing env vars. For some reason the dockerfile mixes use of explicit vars and .env file. Weird + +3. Create Env files +Copy `planka.env.example` to `planka.env`, and `planka-db.env.example` to `planka-db.env` and fill with data, observing the following: +- Update `BASE_URL` to point to vanity URL. Optionally generate a `SECRET_KEY` as well. +- The `POSTGRES_DB` value in `planka-db.env` should match the database specified by `DATABASE_URL` in `planka.env`. + +4. Start just the db +``` +docker compose up -d postgres +``` + +5. Create Admin User +``` +docker compose run --rm planka npm run db:create-admin-user +``` + +6. Start the rest of Dockerfile +``` +docker compose up -d +``` + diff --git a/productivity/karakeep/docker-compose.yml b/productivity/karakeep/docker-compose.yml new file mode 100644 index 0000000..1ee1c14 --- /dev/null +++ b/productivity/karakeep/docker-compose.yml @@ -0,0 +1,52 @@ +networks: + traefik: + external: true + karakeep: + driver: bridge + +services: + web: + image: ghcr.io/karakeep-app/karakeep:release + container_name: karakeep + restart: unless-stopped + volumes: + - /pwspool/software/karakeep/data:/data + env_file: + - karakeep.env + networks: + - karakeep + - traefik + labels: + - traefik.http.routers.karakeep.rule=Host(`kb.whitney.rip`) + - traefik.http.routers.karakeep.tls=true + - traefik.http.routers.karakeep.tls.certresolver=lets-encrypt + - traefik.http.services.karakeep.loadbalancer.server.port=3000 + + chrome: + image: gcr.io/zenika-hub/alpine-chrome:latest + container_name: karakeep-chrome + restart: unless-stopped + networks: + - karakeep + command: + - --no-sandbox + - --disable-gpu + - --disable-dev-shm-usage + - --remote-debugging-address=0.0.0.0 + - --remote-debugging-port=9222 + - --hide-scrollbars + + meilisearch: + image: getmeili/meilisearch:latest + container_name: karakeep-meili + restart: unless-stopped + env_file: + - meili.env + networks: + - karakeep + volumes: + - meilisearch:/meili_data + +volumes: + meilisearch: + data: diff --git a/productivity/karakeep/karakeep.env.example b/productivity/karakeep/karakeep.env.example new file mode 100644 index 0000000..0426d70 --- /dev/null +++ b/productivity/karakeep/karakeep.env.example @@ -0,0 +1,8 @@ +# Karakeep Env Vars +NEXTAUTH_SECRET=random_secret_1 +NEXTAUTH_URL=https://subdomain.example.com +MEILI_ADDR=http://meilisearch:7700 +BROWSER_WEB_URL=http://chrome:9222 +# OPENAI_API_KEY= +DATA_DIR=/data # DON'T CHANGE THIS +DISABLE_SIGNUPS=true # Leave false for first time setup to create admin diff --git a/productivity/karakeep/meili.env.example b/productivity/karakeep/meili.env.example new file mode 100644 index 0000000..2002e0f --- /dev/null +++ b/productivity/karakeep/meili.env.example @@ -0,0 +1,3 @@ +# Meili Env Vars +MEILI_MASTER_KEY=random_secret_2 +MEILI_NO_ANALYTICS=true diff --git a/start-all-containers.sh b/start-all-containers.sh index 7dc4f60..3d26e93 100755 --- a/start-all-containers.sh +++ b/start-all-containers.sh @@ -8,7 +8,7 @@ declare -a CONTAINERS=( "media/plex" "media/transmission" "misc/homepage" - "software-development/code-server" + "productivity/code-server" "software-development/grafana" "software-development/traefik" )