A glitchy but lovable microblogging server
Go to file
2016-03-14 21:44:30 +01:00
app Bind oauth applications to users 2016-03-14 17:49:13 +01:00
bin Adding config for puma, dashboard layout, fixing some queries 2016-03-12 16:21:53 +01:00
config Adding a docker-compose template for running Mastodon easily 2016-03-14 21:39:39 +01:00
db Bind oauth applications to users 2016-03-14 17:49:13 +01:00
lib Adding simple_form, adding profile settings, header image 2016-03-12 20:47:22 +01:00
log Initial commit 2016-02-20 22:53:20 +01:00
public Initial commit 2016-02-20 22:53:20 +01:00
spec Bind oauth applications to users 2016-03-14 17:49:13 +01:00
vendor/assets Initial commit 2016-02-20 22:53:20 +01:00
.dockerignore Ignore future .env files - those should not be committed to VC! Nor be part of docker containers 2016-03-14 21:44:30 +01:00
.env.production.sample Adding a docker-compose template for running Mastodon easily 2016-03-14 21:39:39 +01:00
.gitignore Ignore future .env files - those should not be committed to VC! Nor be part of docker containers 2016-03-14 21:44:30 +01:00
.rspec Adding a Mention model, test stubs 2016-02-25 00:17:01 +01:00
.ruby-version Initial commit 2016-02-20 22:53:20 +01:00
config.ru Initial commit 2016-02-20 22:53:20 +01:00
docker-compose.yml Adding a docker-compose template for running Mastodon easily 2016-03-14 21:39:39 +01:00
Dockerfile Adding a docker-compose template for running Mastodon easily 2016-03-14 21:39:39 +01:00
Gemfile Adding simple_form, adding profile settings, header image 2016-03-12 20:47:22 +01:00
Gemfile.lock Adding simple_form, adding profile settings, header image 2016-03-12 20:47:22 +01:00
LICENSE Adding GNU Public license, adding home timeline, reblog/favourite counters 2016-03-06 17:52:23 +01:00
Rakefile Initial commit 2016-02-20 22:53:20 +01:00
README.md Adding a docker-compose template for running Mastodon easily 2016-03-14 21:39:39 +01:00

Mastodon

Mastodon is a federated microblogging engine. An alternative implementation of the GNU Social project. Based on ActivityStreams, Webfinger, PubsubHubbub and Salmon.

Current status of the project is early development. Documentation &co will be added later

Status

  • GNU Social users can follow Mastodon users
  • Mastodon users can follow GNU Social users
  • Retweets, favourites, mentions, replies work in both directions
  • Public pages for profiles and single statuses
  • Sign up, login, forgotten passwords and changing password
  • Mentions and URLs converted to links in statuses
  • REST API, including home and mention timelines
  • OAuth2 provider system for the API
  • Upload header image for profile page

Missing:

  • Media attachments (photos, videos)
  • UI to post, reblog, favourite, follow and unfollow
  • Deleting statuses, deletion propagation
  • Streaming API

Configuration

  • LOCAL_DOMAIN should be the domain/hostname of your instance. This is absolutely required as it is used for generating unique IDs for everything federation-related
  • LOCAL_HTTPS set it to true if HTTPS works on your website. This is used to generate canonical URLs, which is also important when generating and parsing federation-related IDs
  • HUB_URL should be the URL of the PubsubHubbub service that your instance is going to use. By default it is the open service of Superfeedr

Requirements

  • PostgreSQL
  • Redis

Running with Docker and Docker-Compose

The project now includes a Dockerfile and a docker-compose.yml. You need to turn .env.production sample into .env.production with all the variables set before you can:

docker-compose build

And finally

docker-compose up

As usual, the first thing you would need to do would be to run migrations:

docker-compose run web rake db:migrate