FedStoa / moa

A Mastodon, Twitter, and Instagram Cross-poster
https://moa.party
MIT License
355 stars 19 forks source link
flask flask-sqlalchemy flask-wtf instagram mastodon python twitter

Hello! We are prepping to run Moa as a public utility!

Thank you to James Moore as the original creator and maintainer of both the code and the public service.

Join us on Matrix chat #moaparty:matrix.org to get involved, or file an issue here.

                 _ __ ___   ___   __ _
                | '_ ` _ \ / _ \ / _` |
                | | | | | | (_) | (_| |
                |_| |_| |_|\___/ \__,_|

┌──────────────┐     ╔══════════════╗      ┌──────────────┐
│  Instagram   │────▶║  moa.party   ║◀────▶│   Twitter    │
└──────────────┘     ╚══════════════╝      └──────────────┘
                             ▲
                             │
                             ▼
                     ┌──────────────┐
                     │   Mastodon   │
                     └──────────────┘

Link your Mastodon account to Twitter and Instagram

https://moa.party

Install

Requires python 3.6+

Moa is a flask app and can be run with python or proxied via WSGI.

Features

Some code lifted from https://github.com/halcy/MastodonToTwitter

Twitter App setup

If you plan to use twitter then you'll need to create a twitter app first so the required crednetials can be obtained.

Example nginx/passenger configuration

server {
    listen 80;
    server_name moa.party;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ;
    server_name moa.party;

    # SSL

    ssl on;
    ssl_certificate     /etc/certificates/moa.crt;
    ssl_certificate_key /etc/certificates/moa.key;

    client_max_body_size 1G;

    access_log /var/www/moa/logs/access.log;
    error_log /var/www/moa/logs/error.log;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; }

    passenger_enabled on;
    passenger_app_env production;
    passenger_python /var/www/moa/.venv/bin/python3;
    passenger_env_var MOA_CONFIG config.ProductionConfig;

    root /var/www/moa/public;
}