My Life

Top-level Files of tip
Login

Files in the top-level directory from the latest check-in


mylife

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

Source code hosting

The canonical location for this project's source code is http://fossil.calmabiding.me/mylife/.

Feedback

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!): https://www.calmabiding.me

Prerequisites

Usage

lein run

Testing

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.

Hosting

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 127.0.0.1) 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

Linux

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 = ["docker.io"]

MacOS

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.

WARNING

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!

License

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 <https://www.gnu.org/licenses/>.