Yet Another Open Imageboard
# install generation utils and generate
go install github.com/jschaf/pggen/cmd/pggen@latest
go install github.com/a-h/templ/cmd/[email protected]
go generate ./...
go build
docker build -t ghcr.io/albinodrought/creamy-board .
For an out-of-the-box compose file, see ./compose/docker-compose.yml
CREAMY_DSN: Postgres DSN passed to pgxCREAMY_STORAGE_DRIVER:fsorminio- if
fs:CREAMY_STORAGE_PATH: files will be saved to this pathCREAMY_STORAGE_XOR: xor all file streams using this single hex byte to prevent the host system from generating thumbnails (ex.CREAMY_STORAGE_XOR=BA) (this is not encryption)
- if
minio:CREAMY_MINIO_KEY: Minio access keyCREAMY_MINIO_SECRET: Minio secret keyCREAMY_MINIO_ENDPOINT: Minio endpointCREAMY_MINIO_BUCKET: Minio bucket
- if
CREAMY_LISTEN_ADDRESS:servelistens on thisaddr:portpair
Run migrations:
CREAMY_DSN=dbname=creamyboard user=someuser password=somesecret host=postgres sslmode=disable \
CREAMY_STORAGE_DRIVER=minio \
CREAMY_MINIO_ENDPOINT=http://minio:9000 \
CREAMY_MINIO_KEY=creamyboard \
CREAMY_MINIO_SECRET=creamyboard \
CREAMY_MINIO_BUCKET=creamyboard \
./creamy-board migrate
Serve board:
CREAMY_LISTEN_ADDRESS=:80 \
CREAMY_DSN=dbname=creamyboard user=someuser password=somesecret host=postgres sslmode=disable \
CREAMY_STORAGE_DRIVER=minio \
CREAMY_MINIO_ENDPOINT=http://minio:9000 \
CREAMY_MINIO_KEY=creamyboard \
CREAMY_MINIO_SECRET=creamyboard \
CREAMY_MINIO_BUCKET=creamyboard \
./creamy-board serve
This is a toy project (only a fool would run anything here on prod)

