# How to Join the XMPP Server Welcome! We're moving from Discord to XMPP for better privacy and control. This guide will help you get set up in 5 minutes. ## What is XMPP? XMPP is like Discord, but: - **Privacy-focused** - No tracking, no ads, no data mining - **Self-hosted** - We control the server, not a corporation - **Open source** - Free software you can trust - **End-to-end encrypted** - Your messages are secure (OMEMO encryption) You get all the important features: group chats, DMs, file sharing, voice/video calls, message history, and mobile apps. --- ## Quick Setup Guide ### Step 1: Get Your Account Credentials You'll receive: - **Username:** `yourname@yourdomain.com` - **Password:** (a temporary password - change it after first login) - **Server:** `yourdomain.com` ### Step 2: Install a Client Choose based on your device: #### **Android** (Recommended: Conversations) 1. Open Google Play Store 2. Search for **"Conversations"** (€3.99) or **"Monocles Chat"** (free) 3. Install it 4. Open the app and tap **"Create Account"** or **"Add Account"** 5. Enter your credentials: - **Jabber ID:** `yourname@yourdomain.com` - **Password:** (the one provided) 6. Tap **"Connect"** 7. Done! You'll see your contact list and can join rooms **Why Conversations?** Best XMPP client, supports all modern features, active development, one-time payment. --- #### **iPhone** (Recommended: Monal) 1. Open App Store 2. Search for **"Monal"** (free) 3. Install it 4. Open the app and tap **"Add Account"** 5. Choose **"XMPP"** 6. Enter your credentials: - **Jabber ID:** `yourname@yourdomain.com` - **Password:** (the one provided) 7. Tap **"Save"** 8. Done! You'll see your contact list and can join rooms --- #### **Linux** (Recommended: Dino or Gajim) **Option A: Dino (Modern, GNOME-style)** ```bash # NixOS nix-shell -p dino # Ubuntu/Debian sudo apt install dino-im # Arch sudo pacman -S dino # Fedora sudo dnf install dino ``` 1. Open Dino 2. Click **"Add Account"** 3. Enter: - **Jabber ID:** `yourname@yourdomain.com` - **Password:** (the one provided) 4. Click **"Connect"** **Option B: Gajim (Feature-rich)** ```bash # NixOS nix-shell -p gajim # Ubuntu/Debian sudo apt install gajim # Arch sudo pacman -S gajim # Fedora sudo dnf install gajim ``` 1. Open Gajim 2. Go to **Accounts → Add Account** 3. Choose **"I already have an account"** 4. Enter: - **Jabber ID:** `yourname@yourdomain.com` - **Password:** (the one provided) 5. Click **"Connect"** --- #### **Windows** (Recommended: Gajim) 1. Download Gajim: https://gajim.org/download/ 2. Run the installer 3. Open Gajim 4. Go to **Accounts → Add Account** 5. Choose **"I already have an account"** 6. Enter your credentials: - **Jabber ID:** `yourname@yourdomain.com` - **Password:** (the one provided) 7. Click **"Connect"** --- #### **macOS** (Recommended: Monal) 1. Open Mac App Store 2. Search for **"Monal"** (free) 3. Install it 4. Open Monal and click **"Add Account"** 5. Choose **"XMPP"** 6. Enter your credentials: - **Jabber ID:** `yourname@yourdomain.com` - **Password:** (the one provided) 7. Click **"Save"** --- ### Step 3: Join Group Chats Once connected, join our community rooms: #### **In Conversations (Android):** 1. Tap the **"+"** button (bottom right) 2. Select **"Join group chat"** 3. Enter: `#general@conference.yourdomain.com` 4. Tap **"Join"** #### **In Monal (iOS/macOS):** 1. Tap **"Chats"** tab 2. Tap the **"+"** button (top right) 3. Select **"Join Channel"** 4. Enter: `#general@conference.yourdomain.com` 5. Tap **"Join"** #### **In Dino/Gajim (Desktop):** 1. Click **"Join Group Chat"** or press `Ctrl+J` 2. Enter: `#general@conference.yourdomain.com` 3. Click **"Join"** #### **Available Rooms:** - `#general@conference.yourdomain.com` - Main discussion - `#random@conference.yourdomain.com` - Off-topic chat - `#tech@conference.yourdomain.com` - Tech discussion - `#gaming@conference.yourdomain.com` - Gaming chat --- ## Features Guide ### **Sending Messages** Just type and hit Enter. Markdown-like formatting works in most clients: - `*bold*` → **bold** - `_italic_` → _italic_ - `` `code` `` → `code` ### **Sending Files** - **Mobile:** Tap the attachment icon - **Desktop:** Drag and drop files, or click the attachment button - **Size limit:** 100MB per file ### **Voice/Video Calls** - **Gajim/Dino:** Click the phone/video icon in a 1-on-1 chat - **Conversations:** Tap the phone icon in a contact's chat - **Monal:** Limited support (text chat is primary) ### **End-to-End Encryption (OMEMO)** All DMs are encrypted by default. For group chats: 1. Open the room 2. Enable OMEMO in settings 3. Everyone in the room needs OMEMO-capable clients ### **Push Notifications** - **Mobile:** Works automatically (Conversations, Monal) - **Desktop:** Enable system notifications in client settings ### **Message History** The server saves your messages for 1 year. When you log in on a new device, you'll see recent history automatically. ### **Changing Your Password** Most clients have a "Change Password" option in account settings. Or ask an admin to reset it. --- ## Comparison: Discord vs XMPP | Feature | Discord | XMPP | |---------|---------|------| | **Group chats** | ✓ Servers/Channels | ✓ Rooms | | **Direct messages** | ✓ | ✓ | | **File sharing** | ✓ (25MB free) | ✓ (100MB) | | **Voice/video** | ✓ | ✓ (varies by client) | | **Screen sharing** | ✓ | ✗ (not yet) | | **Message history** | ✓ | ✓ | | **Mobile apps** | ✓ | ✓ | | **End-to-end encryption** | ✗ | ✓ (OMEMO) | | **Self-hosted** | ✗ | ✓ | | **Open source** | ✗ | ✓ | | **Privacy** | Poor (data mining) | Excellent (self-hosted) | | **Ads/tracking** | Yes | No | **Bottom line:** XMPP has 90% of Discord's features, but with 100% more privacy and control. --- ## Troubleshooting ### **Can't connect?** - Check your username is `yourname@yourdomain.com` (not just `yourname`) - Verify your password (no typos) - Make sure you have internet connection - Try a different client (sometimes mobile works when desktop doesn't) ### **No push notifications on mobile?** - Enable notifications in phone settings - Conversations: Needs Google Play Services OR UnifiedPush - Monal: Should work automatically ### **Can't join a room?** - Make sure the room address is correct: `#roomname@conference.yourdomain.com` - Check if you're connected (green indicator) - Try typing the full address instead of using autocomplete ### **Messages not syncing across devices?** - Make sure "Message Carbons" is enabled (usually automatic) - Gajim: Preferences → Advanced → Message Carbons ### **Voice calls not working?** - Check microphone permissions - Desktop only: Gajim and Dino support calls (Conversations on Android too) - Make sure both parties are using compatible clients ### **Someone's messages show a warning icon?** - OMEMO encryption issue - Their device hasn't verified yours yet - Usually safe to trust on first contact (like Signal) --- ## Getting Help - **Join the support room:** `#support@conference.yourdomain.com` - **Contact an admin:** Message `admin@yourdomain.com` - **XMPP documentation:** https://xmpp.org/getting-started/ --- ## Tips for Discord Refugees ### **Mental Model Shift:** - **Discord Server** → **XMPP Room** (group chat) - **Discord Channel** → **XMPP Room** (each room is independent) - **Discord DM** → **XMPP Chat** (works the same) - **@mention** → `@username` (type @ then start typing their name) ### **Things That Work Differently:** - **No bots (yet):** XMPP has bots but not Discord-style - **No custom emoji reactions:** Standard emoji only - **No roles/permissions:** Room moderators exist but simpler - **No status games:** You can set a text status but no "Playing Valorant" integration ### **Things That Are Better:** - **E2E encryption:** Your messages are actually private - **No spying:** Server admin (me) can't read encrypted DMs - **No data mining:** Your info isn't sold to advertisers - **Lightweight:** Apps use less battery/RAM - **Decentralized:** If this server dies, you can move to another XMPP server ### **Learning Curve:** - **Day 1:** Feels weird, where are my Discord features? - **Day 3:** Okay, this works pretty well - **Week 1:** I like how lightweight this is - **Month 1:** Wait, Discord had ads? And no encryption? --- ## Creating Your Own Rooms Want to create a private chat room? #### **In Conversations (Android):** 1. Tap **"+"** → **"Create group chat"** 2. Choose **"Create new channel"** 3. Enter room name (e.g., "secret-plans") 4. Tap **"Create"** #### **In Gajim/Dino:** 1. **"Join Group Chat"** → **"Create New Room"** 2. Room address: `yourroom@conference.yourdomain.com` 3. Click **"Create"** #### **Room Privacy:** - **Public:** Anyone can join - **Private:** Invite-only (set in room config) - **OMEMO-enabled:** End-to-end encrypted (enable after creation) --- ## Migrating from Discord ### **Export your Discord data (optional):** Discord doesn't have a good export tool. If you have important messages: 1. Use DiscordChatExporter (third-party tool) 2. Save channels as HTML/JSON 3. Upload to file sharing if needed ### **Telling people you switched:** ``` Hey! I'm moving to XMPP for privacy reasons. Add me: yourname@yourdomain.com What's XMPP? It's like Discord but self-hosted and encrypted. Get the Conversations app (Android) or Monal (iOS). I'll still check Discord occasionally, but I'm mainly on XMPP now. ``` --- ## Why We Switched - **Privacy:** Discord mines your data, XMPP doesn't - **Control:** We own the server, not a corporation - **No ads:** Self-hosted means no monetization pressure - **Open source:** Auditable code, community-driven - **Decentralized:** Not dependent on one company staying solvent - **Better security:** E2E encryption actually works - **Lightweight:** Less resource-heavy than Discord Discord is convenient, but we're trading convenience for privacy and autonomy. --- ## Welcome to XMPP! Once you're connected, say hi in `#general`! We're a small community, but we value privacy and open-source software. If you have questions, ask in `#support` or DM an admin. Enjoy your freedom from surveillance capitalism. :)