Skip to content
This repository has been archived by the owner on Aug 11, 2020. It is now read-only.
/ gourami Public archive

A decentralized social network for the small web, implemented in ActivityPub

License

Notifications You must be signed in to change notification settings

alexwennerberg/gourami

Repository files navigation

Gourami

Build and Test

An intentionally small, ultra-lightweight social media network (ActivityPub integration TBD)

image

Philosophy and Design

Gourami differs from existing social networks in a number of ways:

  • Intentionally small -- designed to support 50-100 active users. I'm sure it could support more, but things could quickly become a mess. Gourami was hugely and directly inspired by the fantastic essay on runyourown.social
  • Invite-only and closed -- a community curated by the server admin, rather than open to all.
  • Free and open source -- I find the privatization of the internet extremely concerning, especially the way that the very space for building community and networking with our friends is controlled by for-profit corporations with potentially different values and goals than their users.
  • A social network with physical context -- Gourami should be easy to deploy in a physical space (such as a coffee shop or a local wireless network) or among people in a specific physical community, such as a school. In How to Do Nothing, Jenny Odell discusses the lack of a context, specifically physical and temporal context, in social media, and, while praising Mastodon, also calls for social networks that are tied to physical space. While Gourami does not force you to tie a deployment to a place, it is designed in such a way that such a deployment would be relatively easy.
  • Extremely lightweight & fast -- very little Javascript, plain text, small page sizes. Should run on extremely lightweight/cheap hardware and low-bandwidth networks.
  • Brutalist -- Stark and minimal, the design and interface should emphasize, rather than hide, the underlying building blocks of the web that comprise it. This will give Gourami a feel similar to 90s or 2000s web forums.
  • Simple and feature-averse -- A simpler Gourami is much easier for me to develop, support and maintain. I want Gourami to be reliable software that people can build communities on top of, and severely limiting the feature set makes that much easier.

Some goals of this project that are work in progress:

  • Support for ActivityPub federation
  • Additional accessibility features

Read this document for more

Dependencies:

  • sqlite3
  • libsqlite3-dev
  • openssl

Installation

Install Rustup or Cargo

Clone this repository.

Run cargo install --path .

Set environment variables (todo -- add more details)

Configuration is done via dotenv

Run the local server with gourami_social run

Deployment

Gourami is in alpha / development stage. I have a small server running with some of my friends, but this is absolutely not ready for any sort of production environment, and a key feature, ActivityPub federation, is not finished yet.

I think it'd be interesting to set this up so that it can be deployed on a Platform as a Service or Function as a Service offering, but I haven't found any great way to run Sqlite in that context. I may put together an ansible playbook or something.

References

Many projects inspired my work here, and I want to mention them

About

A decentralized social network for the small web, implemented in ActivityPub

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •