Skip to content

Latest commit

 

History

History
178 lines (128 loc) · 4.31 KB

File metadata and controls

178 lines (128 loc) · 4.31 KB

Intra - LAN-Based Messenger

Intra Logo

A lightweight, secure, and fast local network messaging application

Python FastAPI Kotlin Android PySide6 License


Untitled15_20260309141519
---

📱 Overview

Intra is a modern LAN-based messaging application designed for local network communication without internet dependency. It includes:

  • Android app (Jetpack Compose)
  • FastAPI backend
  • Web client (backend/static)
  • Desktop admin utility

🚀 Quick Start (Current Project Workflow)

1) Backend start (recommended scripts)

Run these from repo root (IntraChat-Android-FastAPI).

Windows

Start_Server.bat

Background mode:

Start_Server.bat --background

Linux/macOS shell

chmod +x start_server.sh
./start_server.sh

These scripts automatically:

  • Check for and install external tools (FFmpeg, Tesseract OCR, Ghostscript)
  • Create backend/venv if missing
  • Install/update dependencies from backend/requirements.txt
  • Start backend/run_server.py

2) Linux systemd service (optional)

Install and auto-start on boot:

chmod +x setup_systemd.sh
sudo ./setup_systemd.sh install

Uninstall service:

sudo ./setup_systemd.sh uninstall

Useful checks:

sudo systemctl status intra_backend.service
sudo journalctl -u intra_backend.service -f

3) Manual backend run (without helper scripts)

cd backend
python3 -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate
python -m pip install -r requirements.txt
python run_server.py

run_server.py supports:

  • --host
  • --port
  • --reload / --no-reload

4) Connect clients

  • Android and server machine should be on same Wi-Fi/LAN.
  • Start backend and note displayed local IP.
  • In app/client, set server as http://<SERVER_IP>:8000.

✨ Features

  • 🔐 JWT Authentication
  • 💬 Real-time messaging (WebSocket)
  • 📁 File/media sharing
  • 🤖 Lumir AI assistant integration
  • 👥 Group chat support
  • ⌨️ Typing indicators
  • 💾 Offline message handling
  • 🌙 Dark/Light mode
  • 📱 Android + Web + Desktop tooling

🌐 Web Client

Available from backend static host:

  • http://<SERVER_IP>:8000

🗂️ Project Structure

IntraChat-Android-FastAPI/
├── backend/                    # FastAPI backend + web static files
│   ├── server.py              # Main ASGI app
│   ├── run_server.py          # Starter script (IP print + uvicorn launch)
│   ├── requirements.txt
│   ├── static/                # Web client
│   └── lumir/                 # AI logic
│
├── app/                        # Android app source
├── Start_Server.bat            # Windows starter
├── start_server.sh             # Linux starter
├── setup_systemd.sh            # Linux systemd installer/uninstaller
└── GUIDE.md                    # Beginner-friendly setup guide

🤝 Contributing

  1. Fork the repository
  2. Create a branch (git checkout -b feature/AmazingFeature)
  3. Commit (git commit -m 'Add some AmazingFeature')
  4. Push (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

GPLv3 License. See LICENSE.


Untitled16

Made with ❤️ for local network communication

⭐ Star this repo if you find it useful!