The documentation currently uses Hugo to generate a static site from Markdown. Use hugo serve
to test the site locally.
View the live documentation at https://docs.joinmastodon.org
Mastodon documentation
Home Page: https://docs.joinmastodon.org
License: GNU Free Documentation License v1.3
The documentation currently uses Hugo to generate a static site from Markdown. Use hugo serve
to test the site locally.
View the live documentation at https://docs.joinmastodon.org
The development guide is out of date. Specifically, it doesn’t mention that you need to run a separate server for the webpack assets (images, CSS).
Before:
You can then run Mastodon with:
bundle exec rails server
We should add a note about starting the webpack dev server:
./bin/webpack-dev-server
And/or, as @nightpool was mentioning in web chat, the development guide should get developers ready with the foreman workflow.
hi,
topic pretty much covers it. probably why people are having federation problems.
The GFDL might make more sense for this repo: https://www.gnu.org/licenses/licenses.html#FDL
Or one of the Creative Commons licenses, like the one Wikipedia uses: https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License
The [A]GPL license wasn't intended to be used in non-software contexts: https://www.gnu.org/licenses/gpl-faq.html#GPLOtherThanSoftware
I read the official Developer Guide. An error occurred when trying to build the environment on Mac.
https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Development-guide.md#prerequisites
I hit $ xcode-select install
.
(on MacOS Sierra 10.12.5)
$ xcode-select install
xcode-select: error: invalid argument 'install'
Usage: xcode-select [options]
Print or change the path to the active developer directory. This directory
controls which tools are used for the Xcode command line tools (for example,
xcodebuild) as well as the BSD development commands (such as cc and make).
Options:
-h, --help print this help message and exit
-p, --print-path print the path of the active developer directory
-s <path>, --switch <path> set the path for the active developer directory
--install open a dialog for installation of the command line developer tools
-v, --version print the xcode-select version
-r, --reset reset to the default command line tools path
error: invalid argument
has occurred
$ xcode-select --install
is correct
Title says most. A timeline for most users to follow.
We're glad the Dev' has other interests, a personal life, and a following. But some would just like to follow things of interest to most users, and feed the timeline into other places, such as i.e. Matrix rooms.
for reporting a user on endpoint api/v1/reports
the documentation says
status_ids: The IDs of statuses to report (can be an array)
It seems the status_ids must be an array, otherwise a 404 is returned. So (can be an array)
should be (array)
.
The notifications/dismiss/id one is missing. It seems to have been added on 23 April, but also removed again?
There's also no mention of the possibility of filtering notifications by type. The web interface makes use of it, so it's clearly not meant to be hidden. It's most useful for automated API use to get mentions separately from other types, so please document it fully.
This is a direct continuation of mastodon/mastodon/issues/1247 on the main repo. The documentation as it is regardless of its content is not easy to browse and read because a Github repo isn’t made for this. We need to set-up a URL with an interface that access the folders and files here and display them in a pretty and navigable way. That’s the address we’ll share with people needing the user’s manual, possibly even having a link in the Mastodon interface itself.
Tools and services mentioned in the other thread:
Routes like /oauth/token
and /oauth/authorize
should be part of the API documentation: https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md
Is there any more details on how the protocols in mastodon are implemented ? Other than the FAQ to allow server alternatives ?
I've got HTTP error 422 when calling "/api/v1/accounts/" + who.id + "/follow" to 'locked' local user.
How to post a follow request to 'locked' user ?
I have a daily cron script that runs all my Mastodon maintenance tasks. I'm starting to believe this is not adequate for PuSH subscription refresh. I have found subscriptions dying even on days when the script appeared to have been run.
Keeping feeds from dying should be a solved problem, but I have no idea how often I should refresh subscriptions to ensure a seamless experience with no lost messages. Recommended frequency should be clearly outlined in the documentation. Do I need to do it every hour? Every minute? At what point is it guaranteed to revive expiring subscriptions?
System is Debian Jessie
Full log from /home/mastodon/live/npm-debug.log is as follows:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'run', 'start' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info prestart mastodon@
6 info start mastodon@
7 verbose unsafe-perm in lifecycle true
8 info mastodon@ Failed to exec start script
9 verbose stack Error: mastodon@ start: babel-node ./streaming/index.js --presets es2015,stage-2
9 verbose stack spawn ENOENT
9 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/lib/utils/spawn.js:17:16)
9 verbose stack at emitTwo (events.js:87:13)
9 verbose stack at ChildProcess.emit (events.js:172:7)
9 verbose stack at maybeClose (internal/child_process.js:862:16)
9 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:222:5)
10 verbose pkgid mastodon@
11 verbose cwd /home/mastodon/live
12 error Linux 3.16.0-4-amd64
13 error argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "start"
14 error node v4.8.2
15 error npm v2.15.11
16 error file sh
17 error code ELIFECYCLE
18 error errno ENOENT
19 error syscall spawn
20 error mastodon@ start: babel-node ./streaming/index.js --presets es2015,stage-2
20 error spawn ENOENT
21 error Failed at the mastodon@ start script 'babel-node ./streaming/index.js --presets es2015,stage-2'.
21 error This is most likely a problem with the mastodon package,
21 error not with npm itself.
21 error Tell the author that this fails on your system:
21 error babel-node ./streaming/index.js --presets es2015,stage-2
21 error You can get information on how to open an issue for this project with:
21 error npm bugs mastodon
21 error Or if that isn't available, you can get their info via:
21 error
21 error npm owner ls mastodon
21 error There is likely additional logging output above.
22 verbose exit [ 1, true ]
In the parameter type section of API, it is written as follows.
Square brackets can be indexed but can also be empty.
https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md#parameter-types
For example, a request with no index will succeed.
https://mastodon.social/api/v1/accounts/relationships?id%5B%5D=3&id%5B%5D=2&id%5B%5D=1
(Encoded https://mastodon.social/api/v1/accounts/relationships?id[]=3&id[]=2&id[]=1)
Results:
{
"id": 1,
"following": true,
"followed_by": true,
"blocking": false,
"muting": false,
"requested": false
}
{
"id": 2,
"following": true,
"followed_by": true,
"blocking": false,
"muting": false,
"requested": false
}
{
"id": 3,
"following": true,
"followed_by": true,
"blocking": false,
"muting": false,
"requested": false
}
An indexed request fails.
https://mastodon.social/api/v1/accounts/relationships?id%5B0%5D=3&id%5B1%5D=2&id%5B2%5D=1
(Encoded https://mastodon.social/api/v1/accounts/relationships?id[0]=3&id[1]=2&id[2]=1)
Results: 404 Not Found
https://mastodon.social/api/v1/accounts/relationships?id%5B1%5D=3&id%5B2%5D=2&id%5B3%5D=1
(Encoded https://mastodon.social/api/v1/accounts/relationships?id[1]=3&id[2]=2&id[3]=1)
Results: 404 Not Found
If the index can not be used, need to fix the document.
In several places of the documentation, the command git checkout $(git tag | tail -n 1) is used to pull the latest version of the code.
Due to the sorting of git tag output, this currently checks out v1.4rc6 instead of v1.4.1
Hello,
Sorry I'm so noob at nginx. I'm following the guide here and stuck at this question:
Select the webroot for monero.fun:
-------------------------------------------------------------------------------
1: Enter a new webroot
-------------------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel): 1
Input the webroot for monero.fun: (Enter 'c' to cancel):
Can someone please explain how to run two or more instances on a server? For docker deployments and non-docker deployments.
*.jsx
has been renamed as *.js
mastodon.js
and the locale
folder has been relocated.jsx
files to json
.I had to add this to the config file
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
and commented out the lines for ssl (until I can get the lets encrypt ssl working, but I'm getting "unexpectedly closed the connection" now.
When I run nginx -g 'daemon off;'
I get
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
Quite a few translators (ja, zh-*, pl at least) are confused by rails-i18n's plural handling. They tend to translate the one
message while their locale only takes the other
case (ja, zh, "other"). pl
is messed up in another way: their locale takes four plural forms (here). Perhaps someone can add a list of such common errors to the howto file?
The development environment setup instructions are different for Macs (where we cannot use apt-get). The development guide should include instructions to allow developers with Macs to easily start contributing to Mastodon development.
See title, and additionally is there a way to inspect an instance's upload size limit? I've noticed that if Tusky can't upload to an instance (due to the Mastodon limit, reverse-proxy limit, or load balancer limit) it will give a non-descriptive error - support for getting an instance's limit could somewhat improve this.
Where is the document of POST /api/v1/statuses/:id/mute and POST /api/v1/statuses/:id/unmute ?
Right now the repository looks like this:
it would be great if we could either have Github remove that (I hear they do it if you ask them), or have @dereckson transfer the repository to this account, so that you have the "original" copy and it doesn't show that message
The command stated in the Production Guide will not checkout the latest tag due to release candidate tags appearing lower in the list as returned by git tag
:
git checkout $(git tag | tail -n 1)
Currently gets v1.4rc6 instead of v1.4.3.
There are two options as I see it to fixing this:
Or…
One of the items lists Sidekiq params as "5 threads, DB_POOL=10". That is a waste of 5 database connections, because 5 threads will use only 5 connections. -c
should always equal DB_POOL
.
Also, the median traffic in/out between the two listed instances is too drastically different - i am assuming because the number of active users is different. I think the table should list daily active users or number of nginx connections, instead of total users. Otherwise the metrics are not very useful.
I hope it's OK to use issues here to make documentation. I'm not sure where else this should live right now.
You can use IFTTT and a user's Atom feed to trigger actions from Mastodon posts to other systems. I made this example applet that posts to my Twitter account if I include the keyword share in my post
To post from other systems into Mastodon will need something like the IFTTT webhook system. I found this example https://gist.github.com/austinhuang0131/3846a66790ecc240ec470229b4318cdf/
If we can figure out the format that Mastodon takes to it's API endpoint, then we can potentially also automate posting INTO your mastodon feed (but I think that will also require an API key or similar?)
I'm trying to setup mastodon v1.4.4 on Ubuntu Server 16.04 LTS without Docker.
I'm kind of stuck on precompile step in production-guide below and can't figure out how should I do.
https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Production-guide.md
mastodon@ubuntu:~/live$ RAILS_ENV=production bundle exec rails assets:precompile
Webpacker is installed 🎉 🍰
Using /home/mastodon/live/config/webpacker.yml file for setting up webpack paths
[Webpacker] Compiling assets 🎉
[Webpacker] Compilation Failed
yarn run v0.24.5
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command "webpack" not found.
Any help would be greatly appreciated.
I setup my current instance on Ubuntu, Docker, and nginx, by following this guide: https://github.com/ummjackson/mastodon-guide/blob/master/up-and-running.md
Can someone please write a step-by-step guide to upgrade my instance to the latest version?
Thanks!
I could not find the documentation of the list of Rake tasks. I think this documentation is helpful for us to confirm all Rake tasks clearly and quickly. The command to show the usage of each task (bundle exec rails rake -T
) is helpful but we don't know the detailed information and the usage examples.
As Mastodon gets more and more moving parts, might make sense to introduce a .vagrantfile
that sets up all the the dependencies.
As yet, Running-Mastodon/Development-guide.md merely advises against Docker, which makes sense. Still, running redis and postgres and all that straight on your development machine isn't that great.
Right now, it's hard to tell which things were added to the API in which version at a glance.
I'd like to propose that the API documentation should, from now on forward, include a Changelog (that doesn't need to be more complicated than just "1.4.1: added X, Y and Z"). This would make it a LOT easier for me (and probably other library authors) to keep up with changes - right now, I have to comb through git history, and miss stuff often.
Is a link to any of these of any use for the documentation?
https://github.com/TheCodingCompany/MastodonOAuthPHP
Where is the document of 'source' property in /api/v1/accounts/verify_credentials ?
source.sensitive may null if user not yet save user setting.
Hello.
I hava a question.
Looks like these documentation in this repository are copied from main repository.
Are these same license(AGPLv3)?
I couldn't make sure it because there is no license file.
Regards,
Can we get recommended machine specs for different numbers of users?
Now that the Docker info is removed from the main README in mastodon/mastodon#2026 this documentation should talk about the Docker deployment steps, probably in the Production Guide.
Hi,
I think I saw a message a couple of days ago mentioning a mailinglist (?) for instance admins / operators, but it is not in the Admin guide. Could somebody who knows the details add them, so I can join :-)
I have several questions about upgrading to the newest version:
Thanks!
Hi there, first of all, great project and great work with the documentation.
I have a question:
I was trying to get an access token but couldn't for the life of me make it happen (kept getting a 302
asking me to sign in).
After some time trying different approaches it occurred to me to disable 2FA
and that resulted in a success.
I went back to the documentation but couldn't find how to retrieve an access token with 2FA
enabled.
Would it be possible to get an explanation on how to accomplish this?
I would gladly improve the docs with a PR
with the explanation given here (if there's no trace of this in the current documentation).
Thanks 🙇
From mastodon/mastodon#2249 I learnt that there is some documentation for translators, but apparently it's lacking some localizable files for the emails. I am not sure about how to rephrase the file (the mails are still part of the server, I guess?), so I am requesting someone to do it here.
Since #306, Production Guide has guide to useradd
.
sudo useradd --system --user-group --shell /bin/false --create-home --home /home/mastodon mastodon
This sets /bin/false
as shell, so "sudo -iu mastodon" takes no effect.
Is this guide correct?
I'm not sure if it's okay to ask for this, but it's pretty hard to figure out how to use the API properly >_<;
For example, several endpoints mention to get max_id and since_id from something called a "link header". (for example https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md#getting-who-account-is-following). The only explanation of what a "link header" is is at the top of the page as a link to an RFC. A simple example would explain things much quicker and simpler than pointing to an abstract and complex design document.
Another example, it's mentioned at the top of the page that a file needs to be "form-encoded". But later on, https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md#updating-the-current-user says that images need to be "base64 encoded". So, which is it? Are they different? How to accomplish these encodings? An example of an API call that accomplishes the thing properly would be much easier to understand than describing it in words.
Some other things that aren't explained:
Hello.
I have decided to build an open source and GPLv3 conforming Mastodon client for Android based on Tusky.
Google Play: http://play.google.com/store/apps/details?id=com.fa.imaged
GitHub: https://github.com/FlorentAnders/Panoramic
Please add it to the list:)
Greetings!
I've got a pending PR that adds supervisord configs to the production guide. It was requested that I split it into a new file and I'd like to propose a files called Alternatives.md
to make it clear about what it contains. I'd be happy to merge misc into it as well as pull the apache config out of production.
Hello,
I noticed that the localization is only limited to languages in ISO 639-1.
Would you like extend localization to ISO 639-2. We would like localize Mastodon into Kabyle.
Regrads,
M.Belkacem
Kabyle localizer
What is the recommended procedure for detecting if user already has authorized an app via oauth and to avoid duplicate apps getting created?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.