Orter, a Retrospective Tool
Long story short, I was feeling defeated. I wanted to build something, anything, to prove to myself I can.
The Project
I call it Orter for two reasons:
- It’s retro in reverse
- It’s short for “ought to”, and you ought to retro
It’s missing some quality of life features; but, hey, this is an MVP! My hope is, those familiar with a retrospective can just start using it, but there is a getting started guide to explain most features. I also created a “marketing” page, mostly for the jokes, but it highlights the features that I thought were missing from similar tools.
Continuous Integration and Continuous Deployment
The other reason I made this is to practice CI/CD. I’ve done it several times before, but there are so many options on how to implement it.
External: GitLab.com
- Tag the commit for a push to
main
- Build and push the OCI image*
- Create the release page
The source for the GitLab CICD shows is far better than any explanation I could provide. There is a lot of room for improvement but it works.
Home Lab: Gitea
- Mirror GitLab.com counterpart
- Pull
latest
OCI image - Deploy it as a demo
Gitea mirrors the GitLab project once an hour, which means the demo doesn’t update immediately, but
good enough. Might seem odd to have a Gitea workflows yaml in the
source.
When the mirror sync happens, it detects the push to main
and runs its pipeline.
The Gitea instance pipeline pulls the latest
image from GitLab’s container
registry then deploys it to a local
server. It’s a little embarrassing how many
tries it still takes me to get
CI/CD pipelines right–I’ve only been doing it for like 6 years.
The local server uses a tunnel to link https://demo.orter.org
to the running container. Running
from home the uptime will be far less than five 9’s, but this is a cheap solution that doesn’t
require open ports or a DMZ.
DNS
- CNAME for marketing page to
www
subdomain- Redirect
www
to no subdomain - Marketing site is a
pages
branch in the project
- Redirect
- CNAME for demo to
demo
subdomain
It looks so simple in hindsight, but this was the end result of a lot of trial and error.
Cost
$7.50 a year–the annual fee for orter.org
.
The other cost was time. Time to figure out all the DNS and pipelines. Of course, building the project took time. If we don’t count time, this was a really cheap project!
Why not GitHub?
GitHub is where the people are. That’s why I link my GitLab hosted projects from GitHub.
Once a service gets big, or bought by a bigger company, I get skeptical. Doesn’t it feel weird that so many open source projects are hosted on a closed platform? It does to me.
Closing Remarks
This project isn’t about uptime, or pipelines, or even about retrospectives. It’s about building a minium viable product from nothing. If other people find this useful, great, but I built this for me.
Here are some lessons I took away from this project (my own little retro) that gave me confidence for whatever comes next.
- Limiting scope is key
- AI is a tool, not a replacement for people
- I own a wrench, that doesn’t make me a plumber
- Small iterations lead to feelings of success
- Feelings of success brings me back to work
- Breaking big tasks in to small tasks, is a difficult but practicable skill
- It’s okay to leave a task undone
- Easy to jump back into work
- At least look at the project every day
- Even if you don’t do any meaningful work
* I always use “OCI image” because “image” is ambiguous and I’m easily confused. Are we talking about pictures or containers?