Keep in touch with your friends by sharing photos of special moments, thanks to WASAPhoto!
You can upload your photos directly from your PC, and they will be visible to everyone following you.
(Live demo: https://wasaphoto.marcorealacci.me)
This is my project for the Web And Software Architecture (WASA) class
- An API specification using the OpenAPI standard
- A backend written in the Go language
- A frontend in Vue.js
- Dockerfiles to deploy the backend and the frontend in containers.
- Dockerfile.backend builds the container for the backend
- Dockerfile.frontend builds the container for the frontend
- Dockerfile.embedded builds the backend container, but the backend's webserver also delivers the frontend
If you're building the project in production mode (see below), you need to specify the base URL for the backend in vite.config.js
.
The only (officially) supported method is via Docker containers.
There are two supported methods.
This method is only recommended for testing purposes or instances with very few users (for performance reasons).
The following commands will build a single container to serve both frontend and backend.
docker build -t wasaphoto -f Dockerfile.embedded .
docker run -p 3000:3000 -v <path to data directory>:/data --name wasaphoto wasaphoto
Everything will be up and running on port 3000 (including the Web UI).
This method build two containers, one for the backend and a container that running nginx to serve the frontend.
This is very recommended on production envinoments.
-
Build and run the backend
docker build -t wasabackend -f Dockerfile.backend . docker run -p 3000:3000 -v <path to data directory>:/data --name wasaphoto-backend wasabackend
-
Edit the
vite.config.js
file and replace<your API URL>
with the backend's base URL. -
Build and run the frontend
docker build -t wasafrontend -f Dockerfile.frontend . docker run -p 8080:80 --name wasaphoto-frontend wasafrontend
The Web UI will be up and running on port 8080!