Skip to content

codingcampbell/picfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

picfolio

A quick photo sharing app built during some spare time on holiday break.

This was basically an excuse for me to learn Pocketbase and PrimeVue.

There is a demo instance running at https://picfolio.mattcampbell.dev

Requirements

  • Go (1.23): The backend is built on top of PocketBase.
  • node (22): The frontend is built on Vue's Vite template, which the Go backend will proxy.

OAuth

The app uses GitHub OAuth to handle authentication. The environent variables OAUTH_GITHUB_CLIENT and OAUTH_GITHUB_SECRET are required. You will have to create your own GitHub OAuth project and set the redirect URL to http://localhost:8080/api/oauth2-redirect - see PocketBase docs for more information.

Running

There is a ~40MB prebuilt image available in GitHub Packages:

  • Copy .env.example file to .env and fill in the required values.
  • Create a folder for your data: mkdir data
  • Run the image:
docker run --env-file .env -v ./data:/pb_data --rm -it ghcr.io/codingcampbell/picfolio:latest

The app will be available at http://localhost:8080

Admin Dashboard

The admin UI is available at http://localhost:8080/\_/

The admin login information is specified by the SUPERUSER_EMAIL and SUPERUSER_PASSWORD environment variables.

Developing

DevContainer

To simplify above requirements, there is devcontainer config available, tested with VSCode's Dev Containers extension.

  • Open this repository in VSCode
  • Copy .env.example file to .env and fill in the required values
  • Run "Reopen in container" from command palette
  • Run default build command to start the server
  • Alternatively, in terminal: go run server.go serve --http 0.0.0.0
  • Browse to http://localhost:8080