mirror of
https://github.com/notherealmarco/WASAPhoto.git
synced 2025-03-13 13:35:23 +01:00
74 lines
2.4 KiB
Markdown
74 lines
2.4 KiB
Markdown
[](https://www.codefactor.io/repository/github/notherealmarco/wasaphoto)
|
|
|
|
# WASAPhoto
|
|
|
|
*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](https://wasaphoto.marcorealacci.me))
|
|
|
|
---
|
|
|
|
```
|
|
This is my project for the Web And Software Architecture (WASA) class
|
|
```
|
|
|
|
### This project includes
|
|
|
|
* 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
|
|
|
|
### Before building
|
|
|
|
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`.
|
|
|
|
|
|
## Build & deploy
|
|
|
|
The only (officially) supported method is via Docker containers.
|
|
|
|
There are two supported methods.
|
|
|
|
#### Embedded build
|
|
|
|
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).
|
|
|
|
|
|
#### Production build
|
|
|
|
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.
|
|
|
|
1. 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
|
|
```
|
|
2. Edit the `vite.config.js` file and replace `<your API URL>` with the backend's base URL.
|
|
3. 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!
|
|
|
|
<your API URL>
|