# Tilde Friends

Tilde Friends is a tool for making and sharing.

A public instance lives at https://www.tildefriends.net/.

It is both a peer-to-peer social network client, participating in Secure
Scuttlebutt, as well as a platform for writing and running web applications.

## Goals

1. Make it easy and fun to run all sorts of web applications.
2. Provide security that is easy to understand and protects your data.
3. Make creating and sharing web applications accessible to anyone with a
   browser.

## Getting the Source

Tilde Friends uses git submodules, so either:

```
git clone --recurse-submodules https://dev.tildefriends.net/cory/tildefriends.git
```

or:

```
git clone https://dev.tildefriends.net/cory/tildefriends.git
cd tildefriends
git submodule update --init --recursive
```

The `.tar.xz` source releases are all-inclusive.

## Building

Builds on Linux (x86_64 and aarch64), MacOS, OpenBSD, and Haiku. It's possible
to build for Android, iOS, and Windows on Linux, if you have the right
dependencies in the right places.

### Requirements

On Linux only, system OpenSSL libraries (`libssl-dev`, in debian-speak) are
assumed to be available.

On MacOS, Xcode's command-line tools are expected to be available.

### Build Commands

Run `make` with no arguments to see available build targets and options. `make
debug` is a good place to start.

To build in docker, `docker build .`.

`make format` and `make prettier` will normalize formatting to the coding
standard.

## Running

By default, running the built `out/debug/tildefriends` executable will start a
web server at <http://localhost:12345/>. It expects to be run with the
repository root as the current working directory. `tildefriends -h` lists
further options.

The first user to create an account and log in will be granted administrative
privileges. Further administration can be done at
<http://localhost:12345/~core/admin/>.

## Documentation

Docs are a work in progress:
<https://dev.tildefriends.net/cory/tildefriends/wiki>.

## License

All code unless otherwise noted in is provided under the
[MIT](https://opensource.org/licenses/MIT) license.
