Files in the top-level directory from the latest check-in
- bin
- containerfiles
- doc
- etc
- resources
- src
- src-dev
- src-prod
- test
- CHANGELOG.md
- LICENSE
- project.clj
- README.md
- tasks.txt
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:
- Just once:
sudo apt install podman
- Edit
/etc/sysctl.conf
and add:net.ipv4.ip_unprivileged_port_start=80
why? mkdir $HOME/.mylife
- Set some environment variables:
MY_LIFE_DOMAIN
-- the domain of your MyLife serverFOSSIL_DOMAIN
-- the domain name where you will serve the source codeMY_LIFE_IP
-- the IP address (NOT 127.0.0.1) that the machine that MyLife is running on is listening onFOSSIL_IP
-- the IP address that the machine hosting Fossil is listening on
- Any time code changes:
bin/package
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/>.