Permalink
Browse files

Name change (mastodon -> ardipithecus)

  • Loading branch information...
marrus-sh committed Feb 15, 2017
1 parent 5426f06 commit 69e2d7ff7cf744c44f9f0c42ba3c271687a2daa7
@@ -1,2 +1,2 @@
VAGRANT=true
LOCAL_DOMAIN=mastodon.dev
LOCAL_DOMAIN=ardipithecus.dev
@@ -1,30 +1,32 @@
Mastodon
========
Ardipithecus | Mastodon
=======================
<!--
Travis support for Ardipithecus not here yet!!
[![Build Status](http://img.shields.io/travis/tootsuite/mastodon.svg)][travis]
[![Code Climate](https://img.shields.io/codeclimate/github/tootsuite/mastodon.svg)][code_climate]
[travis]: https://travis-ci.org/tootsuite/mastodon
[code_climate]: https://codeclimate.com/github/tootsuite/mastodon
Mastodon is a free, open-source social network server. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Anyone can run Mastodon and participate in the social network seamlessly.
An alternative implementation of the GNU social project. Based on ActivityStreams, Webfinger, PubsubHubbub and Salmon.
Click on the screenshot to watch a demo of the UI:
[![Screenshot](https://i.imgur.com/T2q5V65.png)][youtube_demo]
-->
[youtube_demo]: https://www.youtube.com/watch?v=YO1jQ8_rAMU
**Ardipithecus** is a fork of **[Mastodon](https://github.com/tootsuite/mastodon)**, a GNU Social-compatible microblogging server.
It aims to maintain the Mastodon backend and API while presenting a modified user experience.
Anyone can run Ardipithecus and participate in the social network seamlessly.
Focus of the project on a clean REST API and a good user interface. Ruby on Rails is used for the back-end, while React.js and Redux are used for the dynamic front-end. A static front-end for public resources (profiles and statuses) is also provided.
Because it is a fork with nontrivial modifications, Ardipithecus will run slightly behind Mastodon development at all times.
The philosophy of Ardipithecus is to provide stable, well-documented updates at regular intevals, which means occasionally introducing a delay before incorporating upstream changes.
If you would like, you can [support the development of this project on Patreon][patreon]. Alternatively, you can donate to this BTC address: `17j2g7vpgHhLuXhN4bueZFCvdxxieyRVWd`
Ardipithecus uses the Mastodon backend, so the best way to encourage the introduction of new features is to [support the development of Mastodon on Patreon][patreon].
[patreon]: https://www.patreon.com/user?u=619786
## Resources
- [Differences between Ardipithecus and Mastodon](docs/Ardipithecus/Differences.md)
- [List of Mastodon instances](docs/Using-Mastodon/List-of-Mastodon-instances.md)
- [Use this tool to find Twitter friends on Mastodon](https://mastodon-bridge.herokuapp.com)
- [API overview](docs/Using-the-API/API.md)
@@ -82,14 +82,14 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provider :virtualbox do |vb|
vb.name = "mastodon"
vb.name = "ardipithecus"
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
config.vm.hostname = "mastodon.dev"
config.vm.hostname = "ardipithecus.dev"
# This uses the vagrant-hostsupdater plugin, and lets you
# access the development site at http://mastodon.dev.
# access the development site at http://ardipithecus.dev.
# To install:
# $ vagrant plugin install hostsupdater
if defined?(VagrantPlugins::HostsUpdater)
@@ -1,16 +1,16 @@
{
"name": "Mastodon",
"description": "A GNU Social-compatible microblogging server",
"repository": "https://github.com/tootsuite/mastodon",
"logo": "https://github.com/tootsuite/mastodon/raw/master/app/assets/images/logo.png",
"name": "Ardipithecus",
"description": "A fork of Mastodon, a GNU Social-compatible microblogging server",
"repository": "https://github.com/marrus-sh/ardipithecus",
"logo": "https://github.com/marrus-sh/ardipithecus/raw/master/app/assets/images/logo.png",
"env": {
"HEROKU": {
"description": "Leave this as true",
"value": "true",
"required": true
},
"LOCAL_DOMAIN": {
"description": "The domain that your Mastodon instance will run on (this can be appname.herokuapp.com or a custom domain)",
"description": "The domain that your Ardipithecus instance will run on (this can be appname.herokuapp.com or a custom domain)",
"required": true
},
"LOCAL_HTTPS": {
@@ -32,7 +32,7 @@
"required": true
},
"S3_ENABLED": {
"description": "Should Mastodon use Amazon S3 for storage? This is highly recommended, as Heroku does not have persistent file storage (files will be lost).",
"description": "Should Ardipithecus use Amazon S3 for storage? This is highly recommended, as Heroku does not have persistent file storage (files will be lost).",
"value": "true",
"required": false
},
@@ -88,4 +88,4 @@
"heroku-postgresql",
"heroku-redis"
]
}
}
@@ -51,7 +51,7 @@ class Application < Rails::Application
end
config.action_dispatch.default_headers = {
'Server' => 'Mastodon',
'Server' => 'Ardipithecus',
'X-Frame-Options' => 'DENY',
'X-Content-Type-Options' => 'nosniff',
'X-XSS-Protection' => '1; mode=block',
@@ -1,7 +1,7 @@
lock '3.7.2'
set :application, 'mastodon'
set :repo_url, 'https://github.com/tootsuite/mastodon.git'
set :application, 'ardipithecus'
set :repo_url, 'https://github.com/marrus-sh/ardipithecus.git'
set :branch, 'master'
set :rbenv_type, :user
set :rbenv_ruby, File.read('.ruby-version').strip
@@ -1,6 +1,6 @@
# config/app.yml for rails-settings-cached
defaults: &defaults
site_title: 'Mastodon'
site_title: 'Ardipithecus'
site_description: ''
site_extended_description: ''
site_contact_username: ''
@@ -0,0 +1,17 @@
Differences between Ardipithecus and Mastodon
=============================================
Most of the differences between Ardipithecus and Mastodon are aesthetic.
However, a few non-trival differences do occur:
- **Ardipithecus runs slightly behind Mastodon development at all times.**
This is unavoidable given Ardipithecus is a Mastodon fork, but it is also desirable as it allows us to better document new Mastodon features and ensure their stability.
- **The name `Mastodon` is replaced with `Ardipithecus` for clarity in some locations.**
These include:
- Various app JSON files
- The HTTP `Server` header
- The name of the Vagrant virtualbox (such that you can run `mastodon.dev` and `ardipithecus.dev` on the same machine)
However, most internal code retains the `Mastodon` label for consistency and easy compatibility.
@@ -1,7 +1,7 @@
Translating
===========
If you want to localise Mastodon into your language, here is how.
If you want to localise Mastodon/Ardipithecus into your language, here is how.
There are two parts to Mastodon, the server and the web client. The translations for the web client are in `app/assets/javascripts/components/locales`. For the server-side, the translations live in `config/locales` and are divided into different files. Here are all the files you’ll need to translate:
@@ -1,7 +1,7 @@
Protocol extensions
===================
Some functionality in Mastodon required some additions to the protocols to enable seamless federation of those features:
Some functionality in Mastodon/Ardipithecus required some additions to the protocols to enable seamless federation of those features:
### Federation of blocks/unblocks
@@ -3,6 +3,8 @@ Index
**Mastodon** is a free, open-source GNU social-compatible social network server. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Anyone can run Mastodon and participate in the social network seamlessly.
**Ardipithecus** is a fork of Mastodon which maintains the same backend but introduces a new UI and features.
### Using Mastodon
- [Frequently Asked Questions](Using-Mastodon/FAQ.md)
- [List of Mastodon instances](Using-Mastodon/List-of-Mastodon-instances.md)
@@ -32,3 +34,7 @@ Index
- [List of used specs and RFCs for the federation](Specs-and-RFCs-used.md)
- [Extensions of the above protocols](Extensions.md)
### Ardipithecus
- [Differences between Ardipithecus and Mastodon](Differences.md)
@@ -1,7 +1,7 @@
Administration guide
====================
So, you have a working Mastodon instance... now what?
So, you have a working Ardipithecus instance... now what?
## Turning into an admin
@@ -1,7 +1,7 @@
Development guide
=================
**Don't use Docker to do development**. It's a quick way to get Mastodon running in production, it's **really really inconvenient for development**. Normally in Rails development environment you get hot reloading of backend code and on-the-fly compilation of assets like JS and CSS, but you lose those benefits by compiling a Docker image. If you want to contribute to Mastodon, it is worth it to simply set up a proper development environment.
**Don't use Docker to do development**. It's a quick way to get Mastodon running in production, it's **really really inconvenient for development**. Normally in Rails development environment you get hot reloading of backend code and on-the-fly compilation of assets like JS and CSS, but you lose those benefits by compiling a Docker image. If you want to contribute to Ardipithecus, it is worth it to simply set up a proper development environment.
In fact, all you need is described in the [production guide](Production-guide.md), **with the following exceptions**. You **don't** need:
@@ -17,11 +17,11 @@ The command to install project dependencies does not require any flags, i.e. sim
By default the development environment wants to connect to a `mastodon_development` database on localhost using your user/ident to login to Postgres (i.e. not a md5 password)
You can run Mastodon with:
You can run Ardipithecus with:
rails s
And open `http://localhost:3000` in your browser. Background jobs run inline (aka synchronously) in the development environment, so you don't need to run a Sidekiq process.
And open `http://localhost:3000` in your browser. Background jobs run inline (aka synchronously) in the development environment, so you don't need to run a Sidekiq process.
By default, your development environment will have an admin account created for you to use - the email address will be `admin@YOURDOMAIN` (e.g. admin@localhost:3000) and the password will be `mastodonadmin`.
@@ -47,4 +47,4 @@ Generally, federation bits are tricky to work on for exactly this reason - it's
I advise to study the existing code and the RFCs before trying to implement any federation-related changes. It's not *that* difficult, but I think "here be dragons" applies because it's easy to break.
If your development environment is running remotely (e.g. on a VPS or virtual machine), setting the `REMOTE_DEV` environment variable will swap your instance from using "letter opener" (which launches a local browser) to "letter opener web" (which collects emails and displays them at /letter_opener ).
If your development environment is running remotely (e.g. on a VPS or virtual machine), setting the `REMOTE_DEV` environment variable will swap your instance from using "letter opener" (which launches a local browser) to "letter opener web" (which collects emails and displays them at /letter_opener ).
@@ -9,48 +9,48 @@ Install the latest versions of Vagrant and VirtualBox for your operating systems
vagrant plugin install vagrant-hostsupdater
This is optional, but will update your 'hosts' file when you start the virtual machine, allowing you to access the site at http://mastodon.dev (instead of http://localhost:3000).
This is optional, but will update your 'hosts' file when you start the virtual machine, allowing you to access the site at http://ardipithecus.dev (instead of http://localhost:3000).
To create and provision a new virtual machine for Mastodon development:
To create and provision a new virtual machine for Ardipithecus development:
git clone git@github.com:tootsuite/mastodon.git
cd mastodon
git clone https://github.com/marrus-sh/ardipithecus
cd ardipithecus
vagrant up
Running `vagrant up` for the first time will run provisioning, which will:
- Download the Ubuntu 14.04 base image, if there isn't already a copy on your machine
- Create a new VirtualBox virtual machine from that image
- Run the provisioning script (located inside the Vagrantfile), which installs the system packages, Ruby gems, and JS modules required for Mastodon
- Run the provisioning script (located inside the Vagrantfile), which installs the system packages, Ruby gems, and JS modules required for Ardipithecus/Mastodon
- Run the startup script
## Starting the server
The Vagrant box will automatically start after provisioning. It can be started in future with `vagrant up` from the mastodon directory.
Once the Ubuntu virtual machine has booted, it will run the startup script, which loads the environment variables from `.env.vagrant` and then runs `rails s -d -b 0.0.0.0`. This will start a Rails server. You can then access your development site at http://mastodon.dev (or at http://localhost:3000 if you haven't installed vagrants-hostupdater). By default, your development environment will have an admin account created for you to use - the email address will be `admin@mastodon.dev` and the password will be `mastodonadmin`.
Once the Ubuntu virtual machine has booted, it will run the startup script, which loads the environment variables from `.env.vagrant` and then runs `rails s -d -b 0.0.0.0`. This will start a Rails server. You can then access your development site at http://ardipithecus.dev (or at http://localhost:3000 if you haven't installed vagrants-hostupdater). By default, your development environment will have an admin account created for you to use - the email address will be `admin@ardipithecus.dev` (or perhaps `admin@localhost:3000`) and the password will be `mastodonadmin`.
To stop the server, simply run `vagrant halt`.
## Using the server
You should now have a working Mastodon instance, although it will not federate, as it is not publicly accessible. Should you need temporary federation for development and testing, see the Ngrok information in the [Development Guide](Development-guide.md).
You should now have a working Ardipithecus instance, although it will not federate, as it is not publicly accessible. Should you need temporary federation for development and testing, see the Ngrok information in the [Development Guide](Development-guide.md).
By default, your instance's ActionMailer will use "Letter Opener Web" for email. This means that any email that would normally be sent, will instead be stored, and accessible at http://mastodon.dev/letter_opener - you can use this to verify a registered user account.
## Making changes/developing
You are able to set environment variables, which are used for Mastodon configuration, by editing the `.env.vagrant` file. Any changes you make will take effect after a Vagrant restart.
You are able to set environment variables, which are used for Ardipithecus configuration, by editing the `.env.vagrant` file. Any changes you make will take effect after a Vagrant restart.
Vagrant has mounted your mastodon folder inside the virtual machine. This means that any change to the files in the folder(e.g. the Rails controllers or the React components in /app) should immediately take effect on the live server. This allows you to make and test changes, and create new commits, without ever needing to access the virtual machine.
Vagrant has mounted your ardipithecus folder inside the virtual machine. This means that any change to the files in the folder(e.g. the Rails controllers or the React components in /app) should immediately take effect on the live server. This allows you to make and test changes, and create new commits, without ever needing to access the virtual machine.
Should you need to access the virtual machine (for example, to manually restart the Rails process without restarting the box), run `vagrant ssh` from the mastodon folder. You will now be logged in as the `vagrant` user on the VirtualBox Ubuntu VM. You will want to `cd /vagrant` to see the app folder.
## Debugging
You can find the Rails server logs in in the `log` folder, which will often have the information you need.
If your Mastodon instance or Vagrant box are really not behaving, you can re-run the provisioning process. Stop the box with `vagrant halt`, and then run `vagrant destroy` - this will delete the virtual machine. You may then run `vagrant up` to create a new box, and re-run provisioning.
If your Ardipithecus instance or Vagrant box are really not behaving, you can re-run the provisioning process. Stop the box with `vagrant halt`, and then run `vagrant destroy` - this will delete the virtual machine. You may then run `vagrant up` to create a new box, and re-run provisioning.
## Testing
@@ -61,4 +61,4 @@ To run the `rspec` tests and `rubocop` style checker, you may either:
## Support/help
If you are confused, or having any issues with the above, the Mastodon IRC channel ( irc.freenode.net #mastodon ) is a good place to find assistance.
If you are confused, or having any issues with the above, the Mastodon IRC channel ( irc.freenode.net #mastodon ) is a good place to find assistance.
@@ -1,6 +1,25 @@
Frequently Asked Questions
==========================
Ardipithecus FAQs
-----------------
#### What is Ardipithecus?
Ardipithecus is a genus of extinct hominine; and is an early ancestor of modern humans.
#### Why the name Ardipithecus?
Ardipithecus aims to bring a more personal touch to the Mastodon user experience, and as Mastodon is named after a prehistoric animal, it only made sense to name Ardipithecus after a prehistoric person.
Also, there's an album titled _Ardipithecus_ by Willow, and it's a cool word.
#### What makes Ardipithecus different from Mastodon?
See [this file](../Ardipithecus/Differences.md).
Mastodon FAQs
-------------
#### What is a Mastodon?
A prehistoric animal, predecessor of the mammoth.
@@ -40,4 +59,4 @@ Because Mastodon has been created from a blank slate, it is much simpler to have
Development of Mastodon and hosting of mastodon.social is funded through my [Patreon (also BTC/PayPal donations)](https://www.patreon.com/user?u=619786). Beyond that, I am not interested in VC funding, monetizing, advertising, or anything of that sort. I could offer setup/maintenance services on demand.
The software is free and open source and communities should host their own servers if they can, that way the costs are more or less distributed. Obviously it'd be hard for me to pay the bills if literally everyone decided to use the mastodon.social instance only.
The software is free and open source and communities should host their own servers if they can, that way the costs are more or less distributed. Obviously it'd be hard for me to pay the bills if literally everyone decided to use the mastodon.social instance only.
@@ -1,5 +1,5 @@
{
"name": "mastodon",
"name": "ardipithecus",
"scripts": {
"test": "mocha --require ./spec/javascript/setup.js --compilers js:babel-register ./spec/javascript/components/*.test.jsx",
"storybook": "start-storybook -p 9001 -c storybook",
@@ -1,6 +1,6 @@
{
"name": "Mastodon",
"description": "Mastodon is a free, open-source social network server.",
"name": "Ardipithecus",
"description": "Ardipithecus is a fork of Mastodon, a free, open-source social network server.",
"icons": [
{
"src": "\/android-chrome-192x192.png",

0 comments on commit 69e2d7f

Please sign in to comment.