TandoorRecipes / recipes

Application for managing recipes, planning meals, building shopping lists and much much more!
https://docs.tandoor.dev
Other
5.35k stars 567 forks source link

Installation - Podman #3076

Open darnir opened 6 months ago

darnir commented 6 months ago

Documentation link

https://docs.tandoor.dev/install/other/

Affected section

Installation

Other

No response

Issue description

I have a working Tandoor setup with Podman and Quadlets (for easy systemd based control). I'd be happy to share the setup and write a guide for it. How should I proceed? Especially since this entails about 7 different files.

slaszt commented 4 months ago

Please share your setup and/or a guide for installation with Podman; I've been trying to follow the install docs and am currently tearing my hair out because they just don't work. You can share here or you can make a pull request.

darnir commented 4 months ago

Here's the files and their contents. I'll try to do a nicer writeup sometime this weekend. The whole setup uses Quadlets and runs on rootless mode.

tandoor.container:

[Unit]
Description=Tandoor Recipe Manager Nginx Frontend
After=tandoor-web_recipes.service
Requires=tandoor-web_recipes.service

[Container]
Label=app=tandoor
ContainerName=tandoor-nginx_recipes
Image=docker.io/nginx:mainline-alpine
AutoUpdate=registry
EnvironmentFile=.tandoor.env
Network=tandoor.network
Volume=tandoor-staticfiles.volume:/static:ro
Volume=tandoor-mediafiles.volume:/media:ro
Volume=tandoor-nginx_conf.volume:/etc/nginx/conf.d:ro
PublishPort=5001:80

[Install]
WantedBy=default.target

tandoor-web_recipes.container

[Unit]
Description=Tandoor Recipe Manager Web Interface
Requires=tandoor-db_recipes.service
After=tandoor-db_recipes.service

[Container]
Label=app=tandoor
ContainerName=web_recipes
Image=docker.io/vabene1111/recipes:latest
EnvironmentFile=.tandoor.env
Network=tandoor.network
Volume=tandoor-staticfiles.volume:/opt/recipes/staticfiles
Volume=tandoor-mediafiles.volume:/opt/recipes/mediafiles
Volume=tandoor-nginx_conf.volume:/opt/recipes/nginx/conf.d
AutoUpdate=registry

[Install]
WantedBy=default.target

tandoor-db_recipes.container

[Unit]
Description=Tandoor Recipe Manager Postgres Database

[Container]
Label=app=tandoor
ContainerName=tandoor-db_recipes
Image=docker.io/postgres:16-alpine
AutoUpdate=registry
Network=tandoor.network
Volume=tandoor-pg_data.volume:/var/lib/postgresql/data
EnvironmentFile=.tandoor.env

[Install]
WantedBy=default.target

tandoor-nginx_conf.volume

[Unit]
Description=Tandoor Recipe Manager Nginx Config

[Volume]
Label=app=tandoor

tandoor-staticfiles.volume

[Unit]
Description=Tandoor Recipe Manager Static Files

[Volume]
Label=app=tandoor

tandoor-mediafiles.volume

[Unit]
Description=Tandoor Recipe Manager Media

[Volume]
Label=app=tandoor

tandoor-pg_data.volume

[Unit]
Description=Tandoor Recipe Manager Postgres Database

[Volume]
Label=app=tandoor

tandoor,network

[Unit]
Description=Network for Tandoor Recipe Manager

[Network]
Label=app=tandoor

.tandoor.env

# random secret key, use for example `base64 /dev/urandom | head -c50` to generate one
SECRET_KEY=<Secret Key>

# add only a database password if you want to run with the default postgres, otherwise change settings accordingly
DB_ENGINE=django.db.backends.postgresql
POSTGRES_HOST=tandoor-db_recipes
POSTGRES_DB=djangodb
POSTGRES_PORT=5432
POSTGRES_USER=djangouser
POSTGRES_PASSWORD=<postgres secret>
DEBUG=0