Canonical Ansible role for deploying Lokole offline email system. This role serves as the single source of truth for Lokole configuration in Internet-in-a-Box (IIAB) and standalone deployments.
Lokole is an offline email client developed by Ascoderu, a Canadian-Congolese non-profit. It provides simple email functionality for communities with limited internet connectivity.
Features:
- Self-service account creation
- Rich text email composition
- File attachments
- Multi-language support (French, Lingala, and more)
- Optional internet sync via USB modem, SIM card, or Ethernet
- Ansible: >= 2.11
- Supported Platforms:
- Ubuntu 22.04 (Jammy), 24.04 (Noble), 26.04 (Oracular)
- Debian 12 (Bookworm), 13 (Trixie)
- Raspberry Pi OS
- Python: 3.9+ on target system
- Supervisor: For service management
- NGINX or Apache: For web proxy
See docs/VARIABLES.md for complete documentation.
lokole_install: True # Enable installation
lokole_enabled: True # Enable services
lokole_sim_type: LocalOnly # Connection type: LocalOnly, Ethernet, hologram, mkwvconf
lokole_admin_user: admin # Default admin username
lokole_admin_password: changeme # Default admin password (CHANGE THIS!)# Option 1: Latest from PyPI (default)
# No additional variables needed
# Option 2: Specific PyPI version
lokole_version: "0.5.10"
# Option 3: Git commit (for development/testing)
lokole_commit: "abc123def456..." # 40-char SHA
lokole_repo: https://github.com/ascoderu/lokole.gitPriority: lokole_commit > lokole_version > latest PyPI
lokole_install_path: /library/lokole
lokole_user: lokole
lokole_url: /lokoleWhen used within IIAB:
pylibsrole (provides shared Python utilities)
---
- hosts: email_servers
become: yes
roles:
- role: ascoderu.lokole
lokole_install: True
lokole_enabled: True
lokole_sim_type: LocalOnly
lokole_admin_password: "{{ vault_lokole_password }}"---
- hosts: localhost
connection: local
become: yes
roles:
- role: ascoderu.lokole
when: lokole_install is defined and lokole_install---
- hosts: test_servers
become: yes
roles:
- role: ascoderu.lokole
lokole_install: True
lokole_enabled: True
lokole_commit: "a1b2c3d4e5f6..." # Your feature branch commit
lokole_repo: https://github.com/yourfork/lokole.git# Run basic role test
ansible-playbook tests/test.yml
# Verify installation
./tests/verify.sh# Install molecule
pip install molecule molecule-docker
# Run tests
molecule test
# Test specific platform
molecule test --platform-name ubuntu2404See docs/TESTING.md for details.
After installation, access Lokole at:
- URL: http://your-server/lokole
- Admin account:
Admin(username) /changeme(password)
# Create admin account
cd /library/lokole/venv
./python3 ./manage.py createadmin -n username -p password
# Reset database
./python3 ./manage.py resetdbThis role is tested via the iiab-lokole-tests repository, which validates:
- Fresh IIAB installations
- Lokole upgrades
- Multiple Ubuntu LTS versions
- Physical Raspberry Pi hardware
Apache License 2.0
Contributions welcome! See CONTRIBUTING.md.
- Issues: https://github.com/ascoderu/lokole/issues
- Role Issues: https://github.com/ascoderu/ansible-role-lokole/issues
- IIAB Issues: https://github.com/iiab/iiab/issues
Maintained by Ascoderu.
Originally part of Internet-in-a-Box project.