A hub for communities as a single service with no required external dependencies.
  • TypeScript 57.2%
  • JavaScript 19.3%
  • CSS 12.6%
  • HTML 10.8%
Find a file
2026-06-18 16:42:09 -07:00
.zed refactor: moving the app to a sub-url and leaving the main page for 2026-06-18 16:19:40 -07:00
config fix: location searching 2026-06-17 00:49:49 -07:00
models refactor: moving the app to a sub-url and leaving the main page for 2026-06-18 16:19:40 -07:00
public fix: styling 2026-06-18 16:42:09 -07:00
scripts refactor: WIP refactoring of styling, etc. 2026-04-20 17:50:08 -07:00
tests refactor: various cleanups, realized blocking long-poll requests are due 2026-06-17 18:20:10 -07:00
utils fix: location searching 2026-06-17 00:49:49 -07:00
.gitignore fix: clean up fixes after APP overhaul 2025-10-25 19:44:07 -07:00
.prettierignore refactor: trying to start the move to utility based styling 2026-03-10 20:26:38 -07:00
deno.json refactor: moving the app to a sub-url and leaving the main page for 2026-06-18 16:19:40 -07:00
deno.lock feature: web component connection-finder first pass (semi-functional) 2026-06-16 13:58:28 -07:00
DEVELOPMENT.md refactor: moving the app to a sub-url and leaving the main page for 2026-06-18 16:19:40 -07:00
Dockerfile refactor: various cleanups, realized blocking long-poll requests are due 2026-06-17 18:20:10 -07:00
README.md refactor: moving the app to a sub-url and leaving the main page for 2026-06-18 16:19:40 -07:00
TODO.md docs: update screenshots, move TODO list out of README 2026-05-30 17:02:39 -07:00

autonomous.contact

A hub for communities as a single service with no required external dependencies.

About

This software tries to make it very easy to host a community with a single container and some disk space.

Everything is written to flat files on the disk, with symlinks used for indexing, eg:

files on disk

(I would welcome a PR that allowed for using something like sqlite, or optionally other dbs.)

The code minimizes external dependencies, and those that exist have been reviewed (line by line in many cases).

Live-loads external dependencies from (trying to keep this list very short):

  • OpenStreetMap

Screenshots

home chat blurbs essays forum map

Building a container

```
podman build -t <tagname> .
```

Running a container

systemd compatible podman service:

# autonomous.contact container
[Container]
ContainerName=autonomous.contact
Image=localhost/<tagname>
PublishPort=8000:8000
Volume=/path/to/your/data/dir/.fsdb:/app/.fsdb/:Z
Volume=/path/to/your/data/dir/public/files:/app/public/files:Z
Environment=SERVERUS_PUT_PATHS_ALLOWED=/app/public/files
Environment=SERVERUS_DELETE_PATHS_ALLOWED=/app/public/files

[Install]
WantedBy=default.target

[Service]
Restart=unless-stopped

Getting Started Developing

  1. Install Deno

    Run their shell script (note: as yourself, not root)

    curl -fsSL https://deno.land/install.sh | sh
    

    Or using Nix:

    nix-shell -p deno
    
  2. Clone the repo:

    git clone https://andyburke.dev/andyburke/autonomous.contact.git

  3. Start the server:

    deno run task serve

  4. Navigate to http://localhost:8000

  5. Edit some code and check it out.