zephyrdark 2858c87b1b fix: use named volume for production PostgreSQL to prevent data loss
Two issues caused DB reset on every deploy:

1. docker-compose.prod.yml used bind mount (./data/postgres) with
   PostgreSQL 18's incompatible /var/lib/postgresql/data path.

2. The Gitea CI runner shares Docker socket with the host, but
   ./data/postgres resolves to a temp path inside the runner container.
   Each deploy creates a fresh workspace, so the bind mount always
   points to an empty directory on the host.

Fix: Use a named Docker volume (same as docker-compose.yml dev config).
Named volumes are managed by Docker daemon directly, survive container
recreation, and don't depend on working directory resolution.

Also fix deploy.yml: remove unnecessary mkdir for data dirs, write
backup to /tmp instead of relative path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 23:47:46 +09:00
2026-02-03 12:27:34 +09:00

Galaxis-Po

Integrated Quant Portfolio Management Application

Tech Stack

  • Backend: FastAPI, Python 3.12, SQLAlchemy, PostgreSQL
  • Frontend: Next.js 15, React 19, TypeScript, Tailwind CSS
  • Infrastructure: Docker, Docker Compose, uv

Development

Prerequisites

  • Docker & Docker Compose
  • Python 3.12
  • Node.js 24
  • uv (Python package manager)

Quick Start

# Start all services
docker-compose up -d

# Backend only (development)
cd backend
uv sync
uv run uvicorn app.main:app --reload

# Frontend only (development)
cd frontend
npm install
npm run dev

Project Structure

galaxis-po/
├── backend/           # FastAPI backend
├── frontend/          # Next.js frontend
├── docker-compose.yml
└── docs/plans/        # Implementation plans
Description
No description provided
Readme 1.4 MiB
Languages
Python 50.6%
TypeScript 48.7%
CSS 0.3%
Dockerfile 0.3%