Prerequisites
Before you begin, make sure you have:
- Node.js 18+ (LTS recommended)
- npm 9+ (comes with Node.js)
- Git (for cloning the repository)
- ffmpeg (optional, for video metadata)
Platform Compatibility
Goldplated Photos works on macOS, Linux, and Windows.
| Feature | macOS | Linux | Windows | Windows + WSL |
|---|---|---|---|---|
| Dev server | ✅ | ✅ | ✅ | ✅ |
| Admin panel | ✅ | ✅ | ✅ | ✅ |
| Build | ✅ | ✅ | ✅ | ✅ |
| Background scripts | ✅ | ✅ | ❌ | ✅ |
| Deploy script | ✅ | ✅ | ❌ | ✅ |
Windows Setup
Option 1: WSL2 (Recommended)
WSL2 provides full Linux compatibility inside Windows.
# Run in PowerShell as Administrator
wsl --install
# After restart, in Ubuntu terminal:
sudo apt update && sudo apt upgrade -y
# Install Node.js via nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 20
# Install ffmpeg (optional)
sudo apt install ffmpeg -y
# Clone and run
git clone https://github.com/klukacin/goldplated-photos.git
cd goldplated-photos
npm install
npm run dev
Option 2: Native Windows (Limited)
For development only - no bash scripts or deployment.
- Install Node.js 20+
- Install Git
- (Optional) Install FFmpeg and add to PATH
# In PowerShell or Command Prompt
git clone https://github.com/klukacin/goldplated-photos.git
cd goldplated-photos
npm install
npm run dev
Limitations: Background scripts
(dev:bg, admin:bg) and deploy
won't work. Run servers in separate terminal windows
instead.
Linux Setup
# Ubuntu/Debian
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 20
sudo apt install ffmpeg rsync -y
# Fedora/RHEL
sudo dnf install nodejs ffmpeg rsync -y
# Arch Linux
sudo pacman -S nodejs npm ffmpeg rsync
macOS Setup
macOS has native compatibility. Install Node.js and optionally ffmpeg:
# Using Homebrew
brew install node ffmpeg
Quick Installation
1. Clone the Repository
git clone https://github.com/klukacin/goldplated-photos.git
cd goldplated-photos
2. Install Dependencies
npm install
3. Start Development Server
npm run dev
Visit http://localhost:4321 to see your gallery.
Adding Your First Album
1. Create Album Folder
Create a folder structure in
src/content/albums/:
src/content/albums/
└── 2025/
└── my-first-album/
├── index.md
├── photo1.jpg
├── photo2.jpg
└── photo3.jpg
2. Add Album Metadata
Create an index.md file with frontmatter:
---
title: "My First Album"
description: "A collection of my favorite photos"
date: "2025-01-03"
thumbnail: "photo1.jpg"
---
3. View Your Album
Navigate to /photos/2025/my-first-album in your
browser.
Using the Admin Panel
For easier content management, use the built-in admin panel:
# Start admin panel
npm run admin
Visit http://localhost:4444 to manage albums, upload photos, and edit content.
Optional: Password Protection
Add a password to your album:
---
title: "Private Album"
password: "secret123"
---
Deployment
Ready to go live? See the Deployment Guide for production setup.
Quick Deploy Steps
-
Configure
.envwith your server details - Run
npm run deploy - Your gallery is live!