- Individual user access controls are very comprehensive
- Plethora of clients available for it
Cons:
- Could not get it set up and working
- User access was far too complicated for our needs
- Nontrivial for newbies to upload a publicly visible file
* Custom container management
Deis:
- Took too much hardware
- Amazingly unstable
- Hard to debug
Flitter:
- Was still on the drawing board
* Dokku
- git push deployment
- Ran on own hardware
- Dockerfile building
- Basically a frontend to nginx
* Switching to Git
* Switching to Git
Surprisingly an easy thing to do. Set up my own instance of [[http://gogs.io][Gogs]] and set up an [[https://git.xeserv.us/org/CinemaQuestria][organization]].
People figured out how to make changes to things very quickly and then were able to push it to the server instantly. Zero downtime redeploys.
* Advantages of Git
- Accountability for who made what change
- The ability to rollback changes if need be
- Everyone being able to have an entire copy of the site and its revision history
To this date we have never needed to capitalize on any of these points, but they are strong selling points in case of the Bus Factor.
Mind you these are not all super-technically gifted people, but the command line git client was good enough that not only were they able to commit and make changes to the site, but they also took initiative and corrected things they messed up and made sure things were consistent and correct.
* The Docker Builder
1. git push dokku master
2. Container is built
3. New container is spawned
4. Old container is killed
* CinemaQuestria's Dockerfile
FROM nginx
COPY . /usr/share/nginx/html
* Further Automation
I wrote a very simple thing called [[https://github.com/Xe/gokku][Gokku]] that would automatically build containers and report to the "admin chat" on PonyChat.
.image https://i.imgur.com/MLAaD9Z.png _ 975
bot.Privmsgf(
"#"+os.Getenv("BOT_CHANNEL"),
"\x036,8%s made %d commits to %s of the site, deploying...",