My Life

All Top-level Files

Files in the top-level directory in any check-in


My Life. On the Web. In your RSS reader.

Source code hosting

The canonical location for this project's source code is


If you'd like to chat about this project, you can contact me various ways that are listed on my website (powered by this project!):



lein run


Run lein fulltest to check everything. This command is also executed as part of the podman image build (see below).

To get into a continuous unit testing mode, run lein test-refresh.

The SSL test is really slow. If you aren't working with it, you can run SKIP_SSL=true lein test-refresh.


The scripts in bin show how to run nginx, fossil, and mylife on a single machine using Podman. You can read bin/start to get a sense for how everything hangs together.

The way I did that using Pop OS was:

  1. Just once:
    1. sudo apt install podman
    2. Edit /etc/sysctl.conf and add: net.ipv4.ip_unprivileged_port_start=80 why?
    3. mkdir $HOME/.mylife
    4. Set some environment variables:
      1. MY_LIFE_DOMAIN -- the domain of your MyLife server
      2. FOSSIL_DOMAIN -- the domain name where you will serve the source code
      3. MY_LIFE_IP -- the IP address (NOT that the machine that MyLife is running on is listening on
      4. FOSSIL_IP -- the IP address that the machine hosting Fossil is listening on
  2. Any time code changes:
    1. bin/package
    2. bin/start

If you know/like Docker, it should also work. The Containerfile at the root of the project drives container construction.

Podman idiosyncrasies


I have had no serious issues with using the default Podman installation in linux (PopOS). Though, I did have to edit /etc/containers/registries.conf to add this:

unqualified-search-registries = [""]


I haven't figured out how to make this work. If you want to use Mac OS as a container host, you'll likely need to use Docker.


I don't make any attempts to maintain backwards compatibility because I'm the only person I know of using this software. If you are running this thing in production, please let me know so I can change my workflow to pay attention to your needs!


Copyright © 2023 Stephen Starkey

This program is free software: you can redistribute it and/or modify it 
under the terms of the GNU Affero General Public License as published by 
the Free Software Foundation, either version 3 of the License, or (at your 
option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT 
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License 
for more details.

You should have received a copy of the GNU Affero General Public License 
along with this program. If not, see <>.