https://github.com/albinodrought/creamy-board
Yet Another Open Imageboard
https://github.com/albinodrought/creamy-board
imageboard
Last synced: about 2 months ago
JSON representation
Yet Another Open Imageboard
- Host: GitHub
- URL: https://github.com/albinodrought/creamy-board
- Owner: AlbinoDrought
- License: agpl-3.0
- Created: 2023-06-22T06:48:41.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-06-27T15:10:53.000Z (almost 2 years ago)
- Last Synced: 2025-02-07T02:46:37.248Z (3 months ago)
- Topics: imageboard
- Language: Go
- Homepage:
- Size: 1.74 MB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Creamy Board
![]()
Yet Another Open Imageboard
## Screenshots

## Building
### Without Docker
```
# 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
```### With Docker
`docker build -t ghcr.io/albinodrought/creamy-board .`
## Usage
For an out-of-the-box compose file, see [./compose/docker-compose.yml](./compose/docker-compose.yml)
- `CREAMY_DSN`: Postgres DSN passed to pgx
- `CREAMY_STORAGE_DRIVER`: `fs` or `minio`
- if `fs`:
- `CREAMY_STORAGE_PATH`: files will be saved to this path
- `CREAMY_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 key
- `CREAMY_MINIO_SECRET`: Minio secret key
- `CREAMY_MINIO_ENDPOINT`: Minio endpoint
- `CREAMY_MINIO_BUCKET`: Minio bucket
- `CREAMY_LISTEN_ADDRESS`: `serve` listens on this `addr:port` pairRun 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
```## Disclaimer
This is a toy project (only a fool would run anything here on prod)