.dockerignore | ||
.gitignore | ||
app.js | ||
bot.js | ||
cert.pem | ||
Dockerfile | ||
key.pem | ||
LICENSE | ||
oauth.js | ||
package.json | ||
README.md | ||
storage.js |
XTweet
Converts noisy toots to tiny tweets
Configurazione e deployment
Crea un file config.js
con questa struttura
module.exports = {
twitter_consumer_key: '...',
twitter_consumer_secret: '...',
mastodon_token: '...',
mastodon_user: 'ekardnam',
instance: 'mastodon.bida.im',
key: 'key.pem',
cert: 'cert.pem',
passphrase: 'pass',
bind_ip: '0.0.0.0',
port: 8000,
callback_url: 'https://localhost:8000',
callback_path: '/oauth/callback'
}
In twitter_consumer_key
e in twitter_consumer_secret
ci vanno i token relativi all'app Twitter.
Collegare Mastodon
Per Mastodon basta andare nel menù Impostazioni > Sviluppo > Nuova applicazione e dare il permesso read:statuses
.
Collegare Twitter
Twitter è po' più complicato. Bisgona eseguire l'app in locale alla prima esecuzione siccome non trovarà un file storage.json
con i token di Twitter l'app avvierà un webserver per l'autorizzazione di Twitter.
I certificati che sono nella repo sono di test e sono configurati già nel config d'esempio. Siccome vengono negoziati i token di Twitter è bene cambiarli. Si generano con
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
bind_ip
e port
sono dove si binda il server HTTPS per l'autorizzazione, mentre callback_url
e callback_path
concatenati danno il callback dell'OAuth (che deve essere settato nell'app Twitter)
Avviato il webserver lo si visita (a https://localhost:8000 con la configurazione di default) e verrà chiesto di autenticarsi su Twitter e di autorizzare l'app.
Deployment del bot
Dopo aver seguito i passi precedenti si può finalmente eseguire il bot. Se lo si vuole ospitare su un server a questo punto sono necessarie alcune accortezze.
Dopo aver clonato la repo sul server è necessario copiare nella directory sul server i file config.js
e storage.json
che contengono i token relativi a Mastodon e Twitter.
Fatto questo si può buildare l'immagine Docker con docker build . -t xtweet
e successivamente eseguirla con docker run -d xtweet