Matilda è un'applicazione web per la gestione dei progetti, sviluppata in Ruby on Rails.
Matilda è un progetto open source e può essere utilizzata liberamente. È possibile contribuire al progetto segnalando bug, suggerendo nuove funzionalità o contribuendo con codice.
L'applicazione può essere installata in locale o su un server cloud tramite Docker. L'applicazione non richiede specifiche dipendenze, ma è consigliato l'uso di PostgreSQL come database.
- Docker
- Docker Compose
# Clona il repository
git clone
cd matilda
# Crea il docker-compose.yml (e modifica le variabili d'ambiente se necessario)
cp docker-compose.example.yml docker-compose.yml
# Builda l'immagine Docker
docker compose build
# Crea il database ed esegui le migrazioni
docker compose run matilda bin/rails db:migrate
# Crea un utente admin per l'accesso al pannello [OPZIONALE]
docker compose run matilda bin/rails create_default_admin
# Crea dati di default per iniziare a usare l'applicazione [OPZIONALE]
docker compose run matilda bin/rails create_default_data
# Avvia il container
docker compose upSe non hai eseguito il comando per creare un utente admin, puoi registrare il primo utente amministratore tramite la pagina di registrazione.
Altrimenti puoi accedere al pannello con l'email admin@mail.com e password Password1!.
Per eseguire l'applicazione correttamente è necessario configurare le seguenti variabili d'ambiente:
RAILS_ENV: Ambiente di esecuzione dell'applicazione (default:development)RAILS_SERVE_STATIC_FILES: Serve i file statici (default:disabled, options:enabled/disabled)RAILS_LOG_TO_STDOUT: Invia i log a STDOUT (default:disabled, options:enabled/disabled)RAILS_LOG_LEVEL: Livello di log dell'applicazione (default:error)RAILS_SERVERLESS_MODE: Modalità serverless (default:disabled, options:enabled/disabled)
SECRET_KEY_BASE: Chiave segreta per la generazione dei token di autenticazioneACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY: Chiave primaria per la crittografia dei dati sensibili (default: unsafe)ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY: Chiave deterministica per la crittografia dei dati sensibili (default: unsafe)ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT: Sale per la derivazione della chiave di crittografia (default: unsafe)
DATABASE_URL: URL di connessione al database PostgreSQL (Se non specificato, l'applicazione utilizzerà SQLite3)
SMTP_USER_NAME: Nome utente per l'invio delle email (se non specificato, l'applicazione non invierà email)SMTP_PASSWORD: Password per l'invio delle email (se non specificato, l'applicazione non invierà email)SMTP_ADDRESS: Indirizzo del server SMTP (se non specificato, l'applicazione non invierà email)SMTP_DOMAIN: Dominio del server SMTP (se non specificato, l'applicazione non invierà email)SMTP_PORT: Porta del server SMTP (se non specificato, l'applicazione non invierà email)
BUCKET_ACCESS_KEY: Chiave di accesso per il bucket S3 (se non specificato, l'applicazione utilizzerà il filesystem locale)BUCKET_ACCESS_KEY_SECRET: Chiave segreta per il bucket S3 (se non specificato, l'applicazione utilizzerà il filesystem locale)BUCKET_REGION: Regione del bucket S3 (se non specificato, l'applicazione utilizzerà il filesystem locale)BUCKET_NAME: Nome del bucket S3 (se non specificato, l'applicazione utilizzerà il filesystem locale)
MATILDA_MAIL_FROM: Indirizzo email del mittente (defaultMatilda <noreply@mail.com>)MATILDA_HOST: Indirizzo host dell'applicazione (defaultmatilda.local)
In alternativa, per mantenere lo standard di Ruby on Rails, è possibile utilizzare il file config/credentials.yml.enc per memorizzare la configurazione. Per farlo, eseguire il comando:
EDITOR="nano" rails credentials:editDi seguito è riportato un esempio di file credentials.yml.enc:
# config/credentials.yml.enc
secret_key_base: example_secret_key_base
active_record_encryption:
primary_key: example_primary_key
deterministic_key: example_deterministic_key
key_derivation_salt: example_key_derivation_salt
smtp:
user_name: user_name@mail.com
password: example_password
domain: example.com
address: mail.example.com
port: 587
bucket:
region: eu-central-1
access_key_id: example_access_key_id
access_key_secret: example_access_key_secret
bucket: example_bucketMatilda può essere integrata con Slack per creare automaticamente i canali dei progetti e inviare notifiche e aggiornamenti. Per configurare l'integrazione con Slack, è necessario creare un'app Slack e inserire i seguenti parametri di configurazione:
{
"display_information": {
"name": "Matilda",
"description": "Project manager for better companies",
"background_color": "#181d45"
},
"features": {
"bot_user": {
"display_name": "Matilda",
"always_online": false
},
"slash_commands": [
{
"command": "/search_attachment",
"url": "https://MATILDA_HOST/slack/search-project-attachment",
"description": "Search project attachments",
"should_escape": false
},
{
"command": "/search_log",
"url": "https://MATILDA_HOST/slack/search-project-log",
"description": "Search project logs",
"should_escape": false
}
]
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook",
"channels:manage",
"chat:write",
"commands",
"groups:write",
"users:read"
]
}
},
"settings": {
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}Per contribuire allo sviluppo di Matilda, è possibile seguire i seguenti passaggi:
- Fork del repository
- Creare un branch per la nuova funzionalità (
git checkout -b feat/my-new-feature) - Commit delle modifiche (
git commit -am 'Add some feature') - Push del branch (
git push origin feat/my-new-feature) - Creare una pull request
- Ruby 3.2.0
# Clona il repository
git clone
cd matilda
# Installa le dipendenze
bundle install
# Crea il database
rails db:create
# Esegui le migrazioni
rails db:migrate
# Esegui i seed
rails db:seed
# Avvia il server
rails serverAccedi al pannello con le credenziali:
- Email:
admin@mail.com - Password:
Password1!
rails db:drop
rails db:create
rails db:migrate
rails create_default_admin # OPZIONALE
rails create_default_data # OPZIONALE
rails serverL'applicazione utilizza Minitest come framework di testing e SimpleCov per la copertura del codice. Per eseguire i test, è possibile utilizzare il comando:
rails testIl comando genererà un report di copertura del codice nella cartella coverage.
