No description
  • Ruby 52.8%
  • HTML 19.5%
  • CSS 16.8%
  • Shell 7.7%
  • JavaScript 1.6%
  • Other 1.6%
Find a file
el_hefe3 6e0349d635
All checks were successful
Release Deploy / release-deploy (push) Successful in 1m57s
Merge pull request 'Add Notes/Posts content management system' (#1) from feature/add-blogging into master
Reviewed-on: #1
2026-08-11 18:09:09 +02:00
.forgejo/workflows pipeline integration 2026-06-18 11:30:59 +02:00
app Add Notes/Posts content management system 2026-08-11 18:05:35 +02:00
bin fix image tag 2026-06-18 12:05:41 +02:00
config Add Notes/Posts content management system 2026-08-11 18:05:35 +02:00
db Add Notes/Posts content management system 2026-08-11 18:05:35 +02:00
deploy fix db binding 2026-06-18 12:47:35 +02:00
scripts fix db binding 2026-06-18 12:47:35 +02:00
test Add Notes/Posts content management system 2026-08-11 18:05:35 +02:00
.containerignore initial 2026-06-18 10:27:47 +02:00
.dockerignore initial 2026-06-18 10:27:47 +02:00
.env.example initial 2026-06-18 10:27:47 +02:00
.gitignore Add Notes/Posts content management system 2026-08-11 18:05:35 +02:00
.mise.toml initial 2026-06-18 10:27:47 +02:00
.ruby-version initial 2026-06-18 10:27:47 +02:00
compose.yml initial 2026-06-18 10:27:47 +02:00
config.ru initial 2026-06-18 10:27:47 +02:00
Containerfile fix image tag 2026-06-18 12:05:41 +02:00
Gemfile initial 2026-06-18 10:27:47 +02:00
Gemfile.lock initial 2026-06-18 10:27:47 +02:00
Rakefile initial 2026-06-18 10:27:47 +02:00
README.md fix db binding 2026-06-18 12:47:35 +02:00

Resume Site

A Rails 8.1 resume site with a small structured CMS. The public site and CMS run from the same container and can be routed by host name.

Development

This project is configured for mise:

mise install
mise run setup
mise run dev

Useful commands:

mise run test
mise exec -- bundle exec rails db:seed

The public site is available at http://localhost:3000/. The CMS fallback is available at http://localhost:3000/cms.

Production

Copy .env.example to .env, fill in your host names and Garage details, then launch with Podman:

podman compose up --build

CMS_HOST serves the CMS root and SITE_HOST serves the public resume root. The /cms path remains available as a local/admin fallback.

The CMS has no login by design. Put CMS_HOST behind a private network, reverse-proxy auth, or another access control layer.

Forgejo Release Deploys

Pushing a v* tag builds the container image on the docker runner, pushes it to your registry, and deploys it to 192.168.1.152 with Podman Compose.

Add these Forgejo repository secrets:

REGISTRY_URL
REGISTRY_USERNAME
REGISTRY_PASSWORD
DEPLOY_USER
DEPLOY_SSH_KEY

The deploy path defaults to /srv/resume-site. The target user must be able to run rootless Podman and write to that directory. The deploy script prepares the SQLite storage directory for the container's rails user with podman unshare.

Create /srv/resume-site/.env on the deployment server for runtime settings:

SECRET_KEY_BASE=
SITE_HOST=192.168.1.152
CMS_HOST=resume-cms.lan
GARAGE_ENDPOINT=
GARAGE_BUCKET=
GARAGE_ACCESS_KEY_ID=
GARAGE_SECRET_ACCESS_KEY=
GARAGE_REGION=garage
GARAGE_FORCE_PATH_STYLE=true

Do not include export prefixes in this file; it is read by Podman Compose.