The other day I was digging around on Github looking for new Docker projects to take a look at and share with you guys when I ran across a repository called Memos.
According to their website, Memos is A lightweight, open source, self-hosted memo hub. memos provides the privacy, security and reliability that innovators need in their moments of inspiration.
Memos is surprisingly lightweight as the docker image is less than 40mb and the memory usage hovers around 30mb for me based on what Portainer says.
So, with that said, let’s take a look at a demo of memos that I’ve got on my local server. If you’d like to check out a demo for yourself, they’ve made one available that I’ll link in the description.
This is my demo version of memos and I like the simplicity of the layout. Everything is more or less where you’d expect it to be.
At the top left is your username and, if you’re an admin, you’ll see a “mod” tag next to your username. if you click your username, you can see a few new menu items like “archived” “about” and “sign out”
Clicking “Archived” will show you any memos that you’ve archived.
Click “About” will give you the current version of your Memos installation. Also, if there’s an update available, you’ll get a banner across the top of the page. Also, if youre using Portainer, it’s SUPER easy to update with just a couple of clicks.
And “Sign out” does exactly that.
Below that you’ll see how many memos you have, how many tags you have, and how many days you’ve been active.
Next we’ll see a familiar activity chart like you might have seen on sites like Github.
In the links below that we’ll see Daily Review. If you click that, you’ll get a summary of the memos that you’ve posted on each day and you can navigate back and forth through the days to see memos you’ve posted on other days.
There’s also a share button next to the navigation arrows that generates an image of the summary of that day that you can download and share if you’d like. You can also do things like rotate the image, but I’m not sure what purpose that might server. At least not from my use-case.
Next there’s an “explore” option that allows you to see any posts that have been made publicly or partially available by either you or other users on the site.
Resources are just that: they’re resources that you can either upload to the server or pull from remote servers. You can attach these resources to memos.
The last link is for “Settings”. There are a few things in here to take a look at.
First, under “Basic” you can edit your account and password as well as see the Open API information you might use for 3rd party integrations.
Next is preferences where you can change the language to one of more than a dozen options. You can also change the theme to match your system or you can manually set a light or dark theme.
Under the next sub-section, you can change the default memo visibility, enable something called a “folding memo”, and enable or disable the ability to edit a memo by double clicking it.
Under the “Admin” section, there’s a Member link where you can create a user and view the existing users.
If you click the “System” link under “Basic” you can do things like change the server name, view the size of the SQlite database and run a compression/vacuum on it to reduce its size.
There are a couple of new options that are currently listed as beta. The fist one is storage that allows you to use Cloudflare’s R2 storage for the app.
The other beta feature is single-sign on that allows you to use Github, Google, or a Custom SSO provider.
The last area on the left is where you can create shortcuts and view tags so you can sort your memos based on the aforementioned shortcuts and tags.
In the right side of the page. There’s a Logo, an RSS feed link for public posts, as well as a search feature that works really well!
Below that you can create memos that include tags, to-do lists, code blocks, the resources that we mentioned before, or you can use the full screen to write your memo if you like.
before you post your memo, you can change the visibility of it to “Only visible to you”, “visible to members”, or “Everyone can see”.
Once you post your memos they will show up below in chronological order, newest first.
What surises me most about this setup is that, even with everything we covered, deploying this only takes 9 lines of docker-compose so let’s take a look at that next.
We’ve got a version 3 docker-compose and only 1 service listed and, of course, that is “memos”
The image is the latest version of the memos container and the container name is, unsurprisingly, “memos”
There’s just a single volume to store the container and its files
The last part of the docker-compose is the port, which is set at 5230, but if you need to change that, be sure to only change the first instance of 5230 and don’t change anything after the colon.