Self-hosted, federated location sharing app and server that prioritizes user privacy and security
end-to-end-encryption location-sharing privacy self-hosted federated
1# PrivacyPin 2 3PrivacyPin is (going to be) a secure self-hosted location sharing app designed to prioritize user privacy. It offers complete control over location sharing, allowing users to determine who can access their location and when. PrivacyPin is federated, so different servers can interoperate and users are not locked into a single provider. Additionally, it might provide real-time notifications when someone accesses their position (that will require self-hosted notifications, which I'm unsure how much of a pain that is). 4 5 6> [!IMPORTANT] 7> I’m in the process of rapidly iterating to establish a base on which testing can begin. The current tech stack is NOT the final one. 8> 9> If you’re interested in contributing to this exciting project, I’d love to hear from you! My primary challenge lies in native mobile development, but any assistance is greatly appreciated! 10 11## Key Features 12 13- **User-Controlled Location Sharing**: Users have full control over who can view their location and when it is visible. 14- **Real-Time Access Notifications**: Receive notifications whenever someone accesses your position. (if I ever feel like adding that) 15- **Self-Hostable Server**: The server is self-hostable, ensuring that users do not rely on big tech companies to access their location data. 16- **Federated Architecture**: Servers can interoperate, allowing people on different servers to share locations with each other. 17- **Robust Security**: Implements strong encryption and security measures to ensure data integrity and protection against potential threats, making security a core focus of the project. 18 19## Usage 20 21PrivacyPin is still in early development, and the usage instructions will be provided once the app reaches a stable version. Stay tuned for updates! 22 23## Roadmap 24 25### **Phase 1 — Core Functionality (MVP)** 26 27* Android mobile app. 28* Self-hostable backend server with basic API functionality. 29* On/off control for location sharing. 30* Simple UI for sharing location. 31* Basic in-app location sharing. 32 33### **Phase 2 — Security & Usability Enhancements** 34 35* Basic user authentication system. 36* Basic background location service for location sharing 37* Improved and polished UI/UX for the mobile app. 38* Server-side data validation. 39* More robust API design and error handling on the client. 40* End-to-end encryption (e2e). 41* Account creation via QR code. 42* Adding friends via QR code. 43 44### **Phase 3 — Advanced Privacy & Architecture** 45 46* Utilization of trusted computing environments for key storing and computing. 47* Federation/multi-server support. 48* Fine-grained control over location sharing. 49 50### **Phase 4 — Extended Security Features** 51 52* Fingerprint/PIN app access. 53* Real-time access notifications. 54 55## Contributing 56 57Contributions to PrivacyPin are welcome! If you'd like to contribute, you can work on an issue, open an issue yourself or message me. Currently, I'm working on an MVP, but if you would want to help this project in literally any way, send me a message :D 58 59## Getting Started (Development) 60 61### Prerequisites 62 63Make sure you have the following installed: 64 65* [Bun](https://bun.sh/docs/installation) 66* [Rust (Cargo)](https://www.rust-lang.org/tools/install) 67 68### Setup 69 70```bash 71git clone https://github.com/azomDev/PrivacyPin.git 72cd PrivacyPin 73bun i 74``` 75 76### Running the Environment 77 78Open **3–4 terminals** and run the following in each: 79 80```bash 81# Terminal 1 82bun run vite 83 84# Terminal 2 85bun run app 86 87# Terminal 3 88bun run server 89 90# (Optional) Terminal 4 — to run another app instance 91bun run app 92``` 93 94## Contact 95 96Email : azomDev@pm.me\ 97Signal : @azom.01\ 98Discord : _azom