mirror of
https://github.com/Afilmory/afilmory
synced 2026-04-24 23:05:05 +00:00
- Introduced a comprehensive `DEVELOPMENT.md` guide for contributors and self-hosters, detailing workspace layout and common commands. - Updated `README.md` to include links to the new development guide and improved deployment instructions. - Added new documentation files covering architecture, builder pipeline, configuration, and deployment strategies. - Implemented new storage provider documentation for Backblaze B2, Eagle, GitHub, and local storage options. - Enhanced the UI components with new features, including a navigation context and improved theme handling. - Removed outdated GitHub Action deployment documentation. Signed-off-by: Innei <tukon479@gmail.com>
160 lines
3.5 KiB
Plaintext
160 lines
3.5 KiB
Plaintext
---
|
|
title: GitHub Pages
|
|
description: Deploy your gallery to GitHub Pages for free static hosting.
|
|
createdAt: 2025-07-20T22:35:03+08:00
|
|
lastModified: 2025-11-23T19:40:52+08:00
|
|
order: 52
|
|
---
|
|
|
|
# GitHub Pages Deployment
|
|
|
|
GitHub Pages provides free static hosting for your gallery. It's the simplest deployment option with zero server maintenance.
|
|
|
|
## Prerequisites
|
|
|
|
- GitHub repository
|
|
- Photos processed with builder
|
|
- Static build ready
|
|
|
|
## Deployment Steps
|
|
|
|
### Step 1: Build Your Gallery
|
|
|
|
Generate thumbnails, manifest, and static build:
|
|
|
|
```bash
|
|
# Install dependencies
|
|
pnpm install
|
|
|
|
# Generate thumbnails and manifest
|
|
pnpm run build:manifest
|
|
|
|
# Build static site
|
|
pnpm --filter web build
|
|
```
|
|
|
|
### Step 2: Prepare Files for Deployment
|
|
|
|
You need to deploy:
|
|
|
|
- `apps/web/dist/` - Built application
|
|
- `apps/web/public/thumbnails/` - Thumbnails
|
|
- `apps/web/src/data/photos-manifest.json` - Manifest
|
|
|
|
### Step 3: Deploy to GitHub Pages
|
|
|
|
#### Option A: gh-pages Branch (Simplest)
|
|
|
|
Push the `dist` folder to a `gh-pages` branch:
|
|
|
|
```bash
|
|
# From project root
|
|
git subtree push --prefix apps/web/dist origin gh-pages
|
|
```
|
|
|
|
Or manually:
|
|
|
|
```bash
|
|
cd apps/web/dist
|
|
git init
|
|
git add .
|
|
git commit -m "Deploy to GitHub Pages"
|
|
git branch -M gh-pages
|
|
git remote add origin https://github.com/username/repo.git
|
|
git push -u origin gh-pages
|
|
```
|
|
|
|
#### Option B: GitHub Actions (Automated)
|
|
|
|
Create `.github/workflows/deploy.yml`:
|
|
|
|
```yaml
|
|
name: Deploy to GitHub Pages
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: pnpm/action-setup@v2
|
|
with:
|
|
version: 8
|
|
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 20
|
|
cache: 'pnpm'
|
|
|
|
- run: pnpm install --frozen-lockfile
|
|
- run: pnpm run build:manifest
|
|
- run: pnpm --filter web build
|
|
|
|
- name: Deploy to GitHub Pages
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
publish_dir: ./apps/web/dist
|
|
```
|
|
|
|
### Step 4: Configure GitHub Pages
|
|
|
|
1. Go to repository Settings → Pages
|
|
2. Select source: Branch `gh-pages` / Root `/`
|
|
3. Save settings
|
|
4. Your site will be available at `https://username.github.io/repo/`
|
|
|
|
## Custom Domain
|
|
|
|
To use a custom domain:
|
|
|
|
1. Add a `CNAME` file in `apps/web/dist/` with your domain:
|
|
```
|
|
gallery.yourdomain.com
|
|
```
|
|
|
|
2. Configure DNS:
|
|
- Add a CNAME record pointing to `username.github.io`
|
|
- Or add A records for GitHub Pages IPs
|
|
|
|
3. In repository Settings → Pages, enter your custom domain
|
|
|
|
4. GitHub will automatically provision SSL
|
|
|
|
## Updating Your Gallery
|
|
|
|
After adding new photos:
|
|
|
|
1. Run builder: `pnpm run build:manifest`
|
|
2. Rebuild: `pnpm --filter web build`
|
|
3. Redeploy: Push `dist` folder to `gh-pages` branch again
|
|
|
|
Or let GitHub Actions handle it automatically on push to main.
|
|
|
|
## Limitations
|
|
|
|
- **Static only**: No server-side rendering or dynamic features
|
|
- **Repository size**: Keep repository under 1GB for best performance
|
|
- **Build time**: GitHub Actions has time limits for free accounts
|
|
|
|
## Troubleshooting
|
|
|
|
**Site not updating:**
|
|
- Clear browser cache
|
|
- Check GitHub Pages build status
|
|
- Verify files are in `gh-pages` branch
|
|
|
|
**404 errors:**
|
|
- Ensure `dist` folder structure is correct
|
|
- Check base path configuration
|
|
- Verify GitHub Pages source branch
|
|
|
|
**Build failures:**
|
|
- Check GitHub Actions logs
|
|
- Verify all dependencies are in `package.json`
|
|
- Ensure storage credentials are set (if using remote storage)
|