No description
  • TypeScript 59.6%
  • JavaScript 17.7%
  • CSS 12.6%
  • HTML 10%
Find a file
2026-06-04 20:11:01 -07:00
.zed fix: formatting issues 2026-05-01 03:25:53 -07:00
config feature: websocket support 2026-06-04 19:23:37 -07:00
models fix: try to fix a bug when sending messages 2026-06-04 20:11:01 -07:00
public fix: try to fix a bug when sending messages 2026-06-04 20:11:01 -07:00
screenshots docs: add screenshot of fsdb 2026-05-30 17:49:27 -07:00
scripts refactor: WIP refactoring of styling, etc. 2026-04-20 17:50:08 -07:00
tests feature: websocket support 2026-06-04 19:23:37 -07:00
utils feature: websocket support 2026-06-04 19:23:37 -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 feature: websocket support 2026-06-04 19:23:37 -07:00
deno.lock feature: websocket support 2026-06-04 19:23:37 -07:00
Dockerfile chore: update deno, lock to a version 2026-04-23 19:54:32 -07:00
README.md docs: add screenshot of fsdb 2026-05-30 17:49:27 -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.