~erock/pico

pico services
docs(prose): add help section for supported hugo variables
feat: parse nav links to convert relative urls to absolute
feat: tag posts with slug as classname on body

refs

main
browse  log 
gemini-code
release notes 

clone

read-only
https://git.sr.ht/~erock/pico
read/write
git@git.sr.ht:~erock/pico

You can also use your local clone with git send-email.

#pico services

This repo hosts the following pico services:

#comms

#development

  • golang >= 1.18
  • direnv to load environment vars
cp ./.env.example .env

Boot up database

docker compose up --profile db -d

Create db and migrate

make create
make migrate

Build services

make build

All services are built inside the ./build folder.

If you want to start prose:

./build/prose-web
# in a separate terminal
./build/prose-ssh

#deployment

We use an image based deployment, so all of our images are uploaded to hub.docker.com

DOCKER_TAG=latest make bp-all

Once images are built, docker compose is used to stand up the services:

docker compose up -d

This makes use of a production .env.prod environment file which defines the various listening addresses and services that will be started. For production, we add a .envrc containing the following:

export COMPOSE_FILE=docker-compose.yml:docker-compose.prod.yml
export COMPOSE_PROFILES=services,caddy

And symlink .env to .env.prod:

ln -s .env.prod .env

This allows us to use docker-compose normally as we would in development.

For any migrations, logging into the our database server, pulling the changes to migrations and running make latest is all that is needed.