- Fix userID field name in invite accept request/response per OCM spec - Add deprecated options field for backward compatibility with older OCM implementations (Nextcloud/ownCloud) - Show user-friendly error messages when invite acceptance fails - Fix SSH key authentication by extracting base64 from OpenSSH format - Persist SSH host key across restarts - Convert action buttons to icon-only style across all pages for consistent UI (shares, friends, profile, admin) |
||
|---|---|---|
| amity-rs | ||
| app | ||
| assets | ||
| static | ||
| templates | ||
| tests | ||
| .gitignore | ||
| amity-sync.sh | ||
| docker-compose.yaml | ||
| Dockerfile | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
| run-tests.sh | ||
| server.conf | ||
| setup.sh | ||
Amity
A lightweight Open Cloud Mesh (OCM) file sharing server with WebDAV support.
Quick Start Deployment
Prerequisites
- Docker and Docker Compose installed
- A domain name pointed to your server
- Ports 80 and 443 available for nginx
Steps
-
Clone the repository:
git clone https://code.smolnet.org/micke/amity.git cd amity -
Run the setup script:
chmod +x setup.sh ./setup.shThe script will prompt you for:
- Your domain name (e.g.,
amity.example.com) - Your email address (for Let's Encrypt notifications)
- Your domain name (e.g.,
-
Build and start the containers:
docker-compose build docker-compose up -d -
Get the temporary admin password:
docker-compose logs amity | grep "TEMPORARY ADMIN PASSWORD" -
Access your instance:
- Navigate to
https://yourdomain.com - Login with username:
admin - Use the temporary password from step 4
- Change your password immediately after first login
- Navigate to
Configuration
Upload Size Limit
The default upload limit is 512 MB. To change it:
-
Edit
server.conf:server.max_request_body_size: 1073741824 # 1 GB in bytes -
Edit
nginx/vhost/yourdomain.com:client_max_body_size 1G; -
Restart the services:
docker-compose restart
Data Persistence
All persistent data is stored in:
./data/app.db- User database and metadata./data/files/- Uploaded files./nginx/- Nginx configuration and SSL certificates
Backup these directories regularly!
User Management
Creating Users
- Login as admin
- Navigate to the Admin page
- Fill in the "New user" form with User ID, Name, and Email
- Click "Create user"
- Generate a one-time password by clicking the 🔑 button next to the user
- Share the password securely with the new user
- User must change the password after first login
Managing Friends
Users can connect with friends on other OCM servers:
- Accept Invite: Paste an OCM invite string from a friend
- Add Friend Manually: Enter friend's name, email, and OCM address
- Invite a Friend: Generate an invite string to share
Troubleshooting
Can't login after setup
Check the logs for the temporary admin password:
docker-compose logs amity | grep PASSWORD
File uploads fail
- Check that both CherryPy and nginx limits are set correctly
- Verify permissions on
./data/files/directory:sudo chown -R 1000:1000 ./data/
SSL certificate issues
Let's Encrypt certificates are managed automatically by acme-companion. Check logs:
docker-compose logs acme
OCM sharing not working
Ensure your domain is accessible from the internet and ports 80/443 are open.
Development
To mount the code for live editing, uncomment in docker-compose.yaml:
volumes:
- .:/app
Then restart: docker-compose restart amity
Credits
- Mimetype icons collated by: github.com/biolds/unicode_mime_icons (MIT License)
- Built with CherryPy
- SSL automation by nginx-proxy and acme-companion
License
This project is licensed under the GNU Affero General Public License v3.0 only (AGPL-3.0-only).
See https://www.gnu.org/licenses/agpl-3.0.en.html for details.