114 lines
3.0 KiB
Markdown
114 lines
3.0 KiB
Markdown
# pictshare-browse
|
|
|
|
...existing content...
|
|
|
|
## Credits
|
|
|
|
Favicon by [SmashIcons](https://smashicons.com/)
|
|
|
|
# pictshare-browse
|
|
|
|
**Intended as a sidecar service for [pictshare](https://github.com/HaschekSolutions/pictshare):**
|
|
This project is designed to run alongside a pictshare instance, providing a simple gallery and API for images uploaded to pictshare. It reads the pictshare CSV file and displays the images in a user-friendly web interface. Can also be used standalone for testing/demo purposes.
|
|
|
|
## Running in Production with Docker Compose
|
|
|
|
This project is designed to run as a containerized Node.js app that serves a gallery of images uploaded to PictShare. It reads a CSV file from a mounted volume and displays the images in a web gallery.
|
|
|
|
|
|
### 1. Using Docker Compose
|
|
|
|
|
|
#### Using the published image from Docker Hub
|
|
|
|
You can use the prebuilt image from Docker Hub:
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
This will pull and run `ryanehamil/pictshare-browse:latest` as defined in the provided `compose.yml`.
|
|
|
|
#### Building the image locally (optional)
|
|
|
|
If you want to build the image yourself, clone this repository and run:
|
|
|
|
```bash
|
|
docker compose build
|
|
docker compose up -d
|
|
```
|
|
|
|
The app will be available on port 3000.
|
|
|
|
|
|
The provided compose file (compose.yml) is for your convenience—feel free to use or modify it as needed, whether you build locally or pull from a registry.
|
|
|
|
### 3. Mount the PictShare Uploads
|
|
|
|
|
|
|
|
Make sure your pictshare uploads directory (with the `sha1.csv` file) is available in a local folder. The example `compose.yml` now mounts `./uploads` from your host to `/uploads` in the container (read-only).
|
|
|
|
|
|
|
|
Example `compose.yml`:
|
|
|
|
```yaml
|
|
services:
|
|
pictshare-browse:
|
|
container_name: pictshare-browse
|
|
image: ryanehamil/pictshare-browse:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
volumes:
|
|
- ./uploads:/uploads:ro
|
|
environment:
|
|
- CSV_FILE=/uploads/sha1.csv
|
|
- IMAGE_BASE_URL=https://<URLHERE>/
|
|
```
|
|
|
|
Place your `sha1.csv` and images inside the `./uploads` directory in your project root. The container will read from this folder at startup.
|
|
|
|
### 4. Updating the App
|
|
|
|
If you make changes to the code, rebuild the image:
|
|
|
|
```bash
|
|
docker compose build
|
|
docker compose up -d
|
|
```
|
|
|
|
---
|
|
|
|
|
|
## Local Development
|
|
|
|
1. Copy `.env.example` to `.env` and adjust as needed (by default, it uses [placehold.co](https://placehold.co/) for test images).
|
|
2. Place your sample `sha1.csv` and images in `./uploads`.
|
|
3. Run:
|
|
|
|
```bash
|
|
npm install
|
|
npm start
|
|
```
|
|
|
|
The app will be available at http://localhost:3000
|
|
|
|
---
|
|
|
|
## Continuous Integration (CI)
|
|
|
|
This project includes a sample Gitea Actions workflow in `.gitea/workflows/ci.yml` that will:
|
|
|
|
- Install dependencies
|
|
- Run lint (if ESLint is configured)
|
|
- Build the Docker image
|
|
|
|
You can customize this workflow to add tests or push images to your registry.
|
|
|
|
---
|
|
|
|
If you have questions or need help with your production setup, open an issue.
|
|
|