doc:appunti:calendar_contacts_private
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| doc:appunti:calendar_contacts_private [2018/11/21 15:52] – [Installazione del server DAViCal] niccolo | doc:appunti:calendar_contacts_private [2024/11/07 11:03] (current) – [Creazione di un calendario di gruppo] niccolo | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| Su uno smartphone Android è possibile avere la rubrica dei contatti e dei calendari con gli eventi senza passare per i servizi Google? Sembra di sì, anche se è tutt' | Su uno smartphone Android è possibile avere la rubrica dei contatti e dei calendari con gli eventi senza passare per i servizi Google? Sembra di sì, anche se è tutt' | ||
| + | In pratica è necessario installare un server che fornisca il servizio tramite i protocolli DAV, nel nostro caso abbiamo utilizzato **DAViCal** su Debian. Sul terminale Android si deve installare un client opportuno, la nostra scelta è caduta su **DAVdroid**. Infine è necessario adottare diversi accorgimenti per poter **esportare** i calendari e i contatti esistenti e verificare che la **sincronizzazione** col server remoto avvenga correttamente. | ||
| ===== Installazione del server DAViCal ===== | ===== Installazione del server DAViCal ===== | ||
| - | Con **Apache 2.4** abbiamo definito un **VirtualHost** solo su HTTPS. Chi fa accesso usando HTTP viene rediretto per evitare che trasmetta password in chiaro sulla rete. Questa la configurazione da aggiungere: | + | In Debian 9 Stretch esiste il pacchetto **DAViCal** versione 1.1.5, per convenienza esiste anche il **[[https:// | 
| + | |||
| + | È necessario un **database di supporto**, nel nostro caso abbiamo utilizzato **PostgreSQL**. La procedura di installazione è abbastanza //sui generis//, in quanto richiede che venga predisposto l' | ||
| + | |||
| + | In **Apache 2.4** abbiamo definito un **VirtualHost** solo su HTTPS. Chi fa accesso usando HTTP viene rediretto per evitare che trasmetta password in chiaro sulla rete. Questa la configurazione da aggiungere: | ||
| < | < | ||
| Line 44: | Line 49: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | L'URL base del server sarà **%%https:// | ||
| + | |||
| + | L' | ||
| ===== Creazione di un utente con address book e calendar ===== | ===== Creazione di un utente con address book e calendar ===== | ||
| Line 60: | Line 69: | ||
| In generale non sarà necessario ricordare il percorso completo dei due oggetti, con l' | In generale non sarà necessario ricordare il percorso completo dei due oggetti, con l' | ||
| - | ===== Installazione di DAVdroid  | + | ===== Installazione di DAVx5 ===== | 
| - | Esistono diverse app per Android per la **sincronizzazione** di **contatti** ed **eventi** calendario verso server **DAV**. Purtroppo si tratta spesso di app che offrono solo una delle due funzionalità e spesso le versioni free hanno limitazioni o problemi (ad esempio continui alert se la connessione con il server fallisce). Pare invece che l'app **[[https:// | + | Esistono diverse app per Android per la **sincronizzazione** di **contatti** ed **eventi** calendario verso server **DAV**. Purtroppo si tratta spesso di app che offrono solo una delle due funzionalità e spesso le versioni free hanno limitazioni o problemi (ad esempio continui alert se la connessione con il server fallisce). Pare invece che l'app **[[https:// | 
| - | {{ .: | + | {{ .: | 
| Una volta scaricata e installata l'app, si deve **creare un nuovo account** sullo smartphone. Nel nostro caso si procede con l' | Una volta scaricata e installata l'app, si deve **creare un nuovo account** sullo smartphone. Nel nostro caso si procede con l' | ||
| Line 71: | Line 80: | ||
| ^ Password  | ^ Password  | ||
| - | Lasciare attiva l' | + | Lasciare attiva l' | 
| - | DAVdroid  | + | DAVx5 si collega al server e tramite l' | 
| Questo è ciò che compare nello smartphone: | Questo è ciò che compare nello smartphone: | ||
| * Strumenti => **Utenti e account** | * Strumenti => **Utenti e account** | ||
| - |     * Compare un nuovo account di tipo **DAVdroid**, identificato con l' | + |     * Compare un nuovo account di tipo **DAVx5**, identificato con l' | 
| - |     * Compare anche un nuovo account di tipo **Rubrica  | + |     * Compare anche un nuovo account di tipo **Rubrica  | 
| Maggiori dettagli nella pagina **[[https:// | Maggiori dettagli nella pagina **[[https:// | ||
| Line 86: | Line 95: | ||
| Il sistema Android usa **tecniche aggressive per il risparmi di batteria**, questo affligge soprattutto le app non di sistema tipo DAVdroid. In pratica accade che **viene inibita la sincronizzazione** con il server: quando l'app è in background non viene mai svegliata. | Il sistema Android usa **tecniche aggressive per il risparmi di batteria**, questo affligge soprattutto le app non di sistema tipo DAVdroid. In pratica accade che **viene inibita la sincronizzazione** con il server: quando l'app è in background non viene mai svegliata. | ||
| - | Avviando l' | + | Avviando l' | 
| * Battery ... ? | * Battery ... ? | ||
| Line 95: | Line 104: | ||
| Nel nostro caso Android 8.1.0 Oreo su Xiaomi Mi A1, è stato necessario ... FIXME | Nel nostro caso Android 8.1.0 Oreo su Xiaomi Mi A1, è stato necessario ... FIXME | ||
| + | |||
| ===== Creazione di un calendario aggiuntivo ===== | ===== Creazione di un calendario aggiuntivo ===== | ||
| Line 168: | Line 178: | ||
| Sullo smartphone è necessaria una sincronizzazione per vedere l' | Sullo smartphone è necessaria una sincronizzazione per vedere l' | ||
| - |   * Dalla app **DAVdroid** => Tap su account => CalDAV => [[wp> | + |   * Dalla app **DAVx5** => Tap su account => CalDAV => [[wp> | 
| * **Chiudere** l'app **Calendario**. | * **Chiudere** l'app **Calendario**. | ||
| - |   * Da **Impostazioni** => //Utenti e account// => //DAVdroid// => // | + |   * Da **Impostazioni** => //Utenti e account// => //DAVx5// => // | 
| Line 183: | Line 193: | ||
| Per effettuare la corretta esportazione dei calendari è stato necessario riattivare la App Google e forzare la sincronizzazione. | Per effettuare la corretta esportazione dei calendari è stato necessario riattivare la App Google e forzare la sincronizzazione. | ||
| + | |||
| + | ===== Creazione di un calendario di gruppo ===== | ||
| + | |||
| + | Scenario: si vuole creare un calendario e condividerlo con due o più utenti. | ||
| + | |||
| + | === Creazione di un Principal di tipo Group === | ||
| + | |||
| + | Il // | ||
| + | |||
| + | * User Functions => Create Principal | ||
| + | * Username: caldavtest@domain.tld | ||
| + | * Password: %%******%% | ||
| + | * Fullname: Gruppo per calendario condiviso | ||
| + | * Email Address: caldavtest@domain.tld | ||
| + | * Principal Type: Group | ||
| + | |||
| + | === Aggiunta degli User al Group === | ||
| + | |||
| + | FIXME Serve davvero? Oppure è sufficiente creare il Ticket (vedi avanti)? | ||
| + | |||
| + | * User Functions => List Groups => (click su ID) | ||
| + | * Group Members => (select the user) => Add | ||
| + | * Group Members => (select the user) => Add | ||
| + | |||
| + | === Creazione di un Calendar Collection nel Group === | ||
| + | |||
| + | * User Functions => List Groups => (click su ID) | ||
| + | * Principal Collections => Create Collection | ||
| + |       * DAV Path: / | ||
| + |       * Displayname: | ||
| + | * Is a Calendar: [x] | ||
| + | * Default Privileges: [x] | ||
| + | * alendar Timezone: Europe/Rome | ||
| + | * Collection Grants: | ||
| + | * (select the group): ALL (FIXME Serve davvero? O basta il ticket?) | ||
| + |         * < | ||
| + |         * < | ||
| + | |||
| + | L'URL completo del calendario è **%%https:// | ||
| + | |||
| + | === Creazione di un Access Ticket per la Collection === | ||
| + | |||
| + | * User Functions => List Groups => (click su ID) | ||
| + | * Access Tickets | ||
| + | * Ticket ID: Nfe5wq0Y | ||
| + |       * Target: / | ||
| + | * Expires: 2029-12-29 | ||
| + | * Privileges: ALL | ||
| + | |||
| + | === Binding della Calendar Collection allo User === | ||
| + | |||
| + | Con questa operazione, il calendario condiviso (che ha URL **%%/ | ||
| + | |||
| + | * User Functions => List Users => (click su ID) | ||
| + | * Bindings to other collections | ||
| + |       * ID Bounds As: / | ||
| + | * Display Name: Calendario condiviso | ||
| + |       * To Collection: / | ||
| + | * Ticket ID: Nfe5wq0Y | ||
| + | |||
| + | L'URL completo del calendario diventa quindi **%%https:// | ||
| + | |||
| + | === Utilizzo dei ticket === | ||
| + | |||
| + | **%%https:// | ||
| + | |||
| + | ===== Aggiornamento del database di backend ===== | ||
| + | |||
| + | Dopo l' | ||
| + | |||
| + | < | ||
| + | Database schema needs upgrading. Current: 1.3.2, Desired: 1.3.3 | ||
| + | </ | ||
| + | |||
| + | Si è deciso di agire da riga di comando. Anzitutto si crea un file **/ | ||
| + | |||
| + | < | ||
| + | admin_db_user: | ||
| + | admin_db_pass: | ||
| + | admin_db_host: | ||
| + | </ | ||
| + | |||
| + | Quindi si esegue lo script **/ | ||
| + | |||
doc/appunti/calendar_contacts_private.1542811921.txt.gz · Last modified:  by niccolo
                
                