- A simple, opinionated, free tool to run retrospectives for a team
- Easily self-hostable or accessible via
retrosimply.com
Note: this project is under development, so for now your data will not persist indefinitely on
retrosimply.com
- Create a room with a password
- Team members join the room, using the same password
- 3 columns (Good, Bad, Actions)
- Create retro cards, group them, and vote on them
- Unlimited room size
- A frontend written in
Vue
that communicates with an API written inGo
- When a client joins a room, a websocket connection is established and changes are broadcast to other clients in the room
- Persistent data is stored in
Redis
with append-only mode on - Messages are broadcast to other clients via
Redis
' pub sub message broker - HTTPS is handled via
Caddy
/Let's Encrypt
- Auth is handled using JWTs stored as HTTP-only cookies
- Telemetry is handled via
Open Telemetry
withJaeger
as a backend - Services are orchestrated via
docker-compose
- To make code changes, open the project in the
VSCode
dev container - In
.env
, set theDEV_HOST_PATH
path environment variable to the full path of the root of the repo on the host machine, such as/home/<host_username>/retro-simply
.
- After following the steps above, run:
make
, which will run all the production services locally. - Access the app at
https://localhost
- Access telemetry at
http://localhost:16686
- When finished, run:
make prod-down-volumes
to teardown the services and volumes
- To build, test, and then run with frontend hot reloading:
make dev-up
- To build, test, and then run all services in production mode:
make prod-up
- To build and test dev images:
make dev-build
- To build and test prod images:
make prod-build
- To test without building Docker images:
make test
- To test the frontend without building Docker images:
make frontend-test
- To test the backend without building Docker images:
make backend-test
- To teardown dev services:
make dev-down
- To teardown prod services:
make prod-down
- To teardown dev services and volumes:
make dev-down-volumes
- To teardown prod services and volumes:
make prod-down-volumes
- To remove compiled the frontend:
make clean
- To generate increasing, realistic load:
make load
- To access retro-simply, navigate to
https://localhost/
NOTE: the
make
commands call docker, which calls the host docker daemon. To run any docker commands yourself, remember to placesudo
in front, as insudo docker ps
.
- Create a VM with port 80 and 443 open
- Clone the repo
- Change the
DOMAIN
environment variable to your domain(s)- For example, if you have an A record for
retrosimply.com -> ip address
and a CNAME record forwww.retrosimply.com -> retrosimply.com
, setDOMAIN="retrosimply.com, www.retrosimply.com"
- For example, if you have an A record for
- Change all
replaceme
values with passwords of your choosing - Install
docker
,docker-compose
, andcmake
- Find the hard limit number of files:
ulimit -Hn
and set the soft limit to that number:ulimit -n <NUMBER>
- Run
make prod-up