Containerized Self-Hosted Photo-Management Deployment
A stock-image / visual-content marketplace
Overview
A containerized deployment wrapper around Lychee, the open-source self-hosted photo-management application, packaged for the visual-content marketplace. It bundles the Lychee app (via a git submodule) with Docker, Nginx, and configurable database backends for turnkey hosting.
Why It Exists
Rather than rebuild a photo-management gallery from scratch, the team integrated and operationalized the open-source Lychee project, wrapping it in a reproducible, deployable container with sensible defaults and multiple database options to fit the marketplace’s hosting needs.
What We Built
A deployment repo whose core is a lychee-dev git submodule (the Lychee app) plus the operational
glue: a Dockerfile, docker-compose.yml, an Nginx default.conf, an entrypoint.sh, and
build.sh/deploy.sh/inject.sh scripts. Environment presets for each backend ship as
env.mysql, env.postgres, env.sqlite, env.sqlite2, and env.default. A vendored
composer.phar handles PHP dependency install, and a .travis.yml provides CI. Images are pushed
to a Scaleway container registry.
Technologies & Approach
Docker and Docker Compose for reproducible, isolated deployment; Nginx as the front; pluggable database configs (MySQL/PostgreSQL/SQLite) so the same image runs across environments. Using Lychee as a git submodule kept the upstream OSS project cleanly separable from the deployment tooling.
Outcome / Impact
Provided a ready-to-run, self-hosted photo-management component for the platform, demonstrating the ability to evaluate, integrate, and operationalize third-party open-source software rather than reinventing it.
Capabilities Demonstrated
- Containerizing and deploying an open-source app (Lychee) for production use
- Multi-database packaging via environment presets (MySQL/Postgres/SQLite)
- Docker Compose + Nginx orchestration with CI and a private container registry
- Clean integration of upstream OSS through git submodules