- Vala 84%
- Shell 5.9%
- C++ 5%
- Python 3.3%
- C 1%
- Other 0.6%
| .github | ||
| .guix/modules | ||
| ci/images | ||
| crypto-vala | ||
| docs | ||
| google-webrtc | ||
| libdino | ||
| main | ||
| MQTT/Node Red Examples | ||
| packaging/flatpak | ||
| plugins | ||
| qlite | ||
| scripts | ||
| tests | ||
| xmpp-vala | ||
| .dockerignore | ||
| .gitignore | ||
| .guix-channel | ||
| AUTHORS | ||
| CONTRIBUTING.md | ||
| dino.doap | ||
| dino.doap.in | ||
| im.dinox.dinox.json | ||
| LICENSE | ||
| meson.build | ||
| meson_options.txt | ||
| NOTICE | ||
| README.md | ||
| SECURITY.md | ||
| VERSION | ||
DinoX
Secure XMPP messenger for desktop chat, calls, files and automation
DinoX is a GTK4/libadwaita XMPP client for Linux and Windows. It focuses on private messaging, self-hosted infrastructure and practical interoperability: encrypted 1:1 chats, group chats, file sharing, voice/video calls, voice/video messages, optional Tor routing, local data encryption and OpenPGP/OMEMO key management.
Beyond normal messenger use, DinoX includes optional modules for local REST automation, Botmother bot management, AI provider integration, MQTT/IoT topics and DTMF dialpad support for XMPP SIP provider workflows.
DinoX is developed based on the XMPP servers Ejabberd 26.04 and Prosody 13.06. The latest updates or further development of both servers are integrated into DinoX immediately. Other XMPP servers are supported in their basic functions as well, but there is no guarantee they will work flawlessly.
Website • Source • Releases • Milestone 2.0.0 • Download • Features • XEP Support • Build • Debug • Testing • Changelog • Contributing
Key Features
| Feature | Description |
|---|---|
| Encrypted File Upload | AES-GCM encrypted file URLs plus incoming XEP-0448 interoperability; DinoX does not currently emit outgoing ESFS payloads |
| Local File Encryption | Local avatars, stickers and transfers are encrypted at rest (AES-256-GCM) |
| Secure Deletion | Global history deletion with throttling and local cache cleanup |
| OMEMO Encryption | End-to-end encryption for messages and files; legacy OMEMO is enabled, while the OMEMO 2 path remains disabled in stable builds |
| OpenPGP Encryption | XEP-0027 compatibility, XEP-0373 key management and XEP-0374 signcrypt text messages, including key generation, deletion and revocation |
| Encrypted Local Database | Local data is stored in an encrypted SQLCipher database (password required at startup) |
| Change Database Password | Change the local database password via Preferences (SQLCipher rekey) |
| Panic Wipe | Quickly wipe local DinoX data (Ctrl+Shift+Alt+P) and exit (also triggered after 3 failed unlock attempts) |
| OpenPGP Keyring Isolation | Uses an app-scoped GNUPGHOME so Panic Wipe can remove app OpenPGP material |
| Disappearing Messages | Auto-delete messages after 15min, 30min, 1h, 24h, 7d or 30d |
| Voice & Video Calls | Google/libwebrtc 1:1 calls plus partial private-MUC group calls, with echo cancellation, noise suppression, AGC and transient suppression |
| DTMF & Dialpad | RFC 4733 telephone-event support with Dialpad UI for XMPP SIP Provider telephony (hotlines, IVR, conference controls) |
| Voice Messages | Record and send audio messages (AAC format) |
| Video Messages | Record and send video messages with camera preview (H.264+AAC in MP4, max 720p, 120s) |
| Inline Video Player | Play videos directly in chat (no external player) |
| Group Chats (MUC) | Group chats with moderation, roles and private-room workflows |
| Tor Routing | Optional integrated Tor and Obfs4proxy support |
| System Tray | Background mode with StatusNotifierItem |
| Message Retraction | Delete messages for everyone (XEP-0424) |
| Emoji Reactions | React to messages (XEP-0444) |
| Stickers | Send & receive sticker packs (XEP-0449) |
| Message Replies | Quote and reply to messages (XEP-0461) |
| MQTT Plugin | IoT sensor data via MQTT 5.0 — topic subscriptions, alerts, sparkline charts, XMPP bridging, Home Assistant integration, Prosody mod_pubsub_mqtt support, ejabberd mod_mqtt support, Node-RED integration with free-text publish/response |
| MUC Moderation | Kick, ban and role management through XEP-0045; moderated message retraction through XEP-0425 |
| TLS Certificate Pinning | Trust self-signed certs for self-hosted servers |
| TLS Certificate Info | View TLS certificate details (issuer, validity, fingerprint) in account settings |
| Backup & Restore | Full data backup with optional GPG encryption (AES-256) |
| Database Maintenance | Clean orphaned records, optimize storage |
| PGP Key Management | Generate, select, delete, revoke OpenPGP keys in-app. Automatic key exchange via PEP |
| 47 Languages | ~85% translated |
| Dark Mode | System theme or manual toggle |
Installation
Windows
Download the newest release that contains a Windows ZIP/prebuild artifact from
DinoX Releases. Extract the ZIP
archive and run dinox.exe. Keep the complete extracted directory together;
it contains the required runtime DLLs and the package-specific license
inventory under share/licenses/dinox.
To build DinoX from source on Windows, see the build instructions: Deutsch | English
On first start after unpacking, Windows Defender may briefly scan the extracted files. After that, DinoX should start normally. Calls and media-message capture load the Google/libwebrtc worker on demand; media-file decoding is handled separately by GStreamer.
Geolocation for locations is not available on Windows.
Ubuntu 24.04 / Linux Mint 22 (.deb)
Download the .deb package and matching .sha256 file from a DinoX release
that contains Debian-format package artifacts. The official binary .deb is
built and tested on Ubuntu 24.04 and Linux Mint 22; it is not the Debian 13
binary package. Debian 13 users should use the AppImage or Flatpak below, or
build DinoX from source:
DinoX Releases.
sha256sum -c dinox_*.deb.sha256
sudo apt install ./dinox_*.deb
Flatpak
Download the Flatpak bundle and matching checksum from a DinoX release that contains Flatpak artifacts: DinoX Releases.
# Verify and install DinoX
sha256sum -c ./dinox-*-x86_64.flatpak.sha256
flatpak install --user ./dinox-*-x86_64.flatpak
# Run
flatpak run im.dinox.dinox
The bundle installation automatically fetches its required GNOME 50 and
matching codec runtimes from the embedded runtime repository when they are not
installed yet.
A manual flatpak install flathub org.gnome.Platform//50 is only a
troubleshooting step if automatic runtime resolution reports an error; it is
not part of the normal installation.
AppImage
-
Download the AppImage and matching checksum from a DinoX release that contains AppImage artifacts: DinoX Releases.
sha256sum -c DinoX-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzrelease asset provides the corresponding-source and license payload. It is not required to run DinoX. -
Install via AppMan (rootless)
appman -i dinox -
Install via AM
am -i dinox
Build from Source
DinoX uses Meson/Ninja and normal distribution development packages. Official release packages use a separately provisioned builder image for pinned custom dependency versions. Every production build consumes the public, pinned Google/libwebrtc M150 DinoX runtime artifact. The current source-build reference is Ubuntu 24.04 LTS, Linux Mint 22.x and Debian 13. For complete build instructions and packaging notes, start with the Linux Source Build guide.
Local data encryption
DinoX stores your local data (accounts, messages, settings, cached metadata) in an encrypted SQLCipher database.
- You will be prompted for a password on startup.
- If you forget the password, the database cannot be recovered.
- A Panic Wipe action is available via the app menu and the shortcut
Ctrl+Shift+Alt+P.
Audio/Video calling notes
DinoX 1:1 calling focuses on cross-client interoperability, notably with Conversations/monocles (Android) and Monal (iOS):
- Live-call engine: pinned Google/libwebrtc M150 in an external supervised worker process; GStreamer RTP is not a production call fallback.
- Security profile: mandatory DTLS-SRTP; XMPP/OMEMO verifies the call fingerprint before media is accepted.
- Baseline codecs: Opus (audio) and VP8 (video). H.264 is not enabled in the default DinoX libwebrtc artifact.
- Network policy: Automatic by default, with an explicit audio-only low-bandwidth (2G) mode using a 16 kbit/s Opus sender cap.
- Devices: libwebrtc owns microphone, speaker and camera integration on Linux and Windows. PipeWire, PulseAudio, ALSA and WASAPI are platform details behind that engine rather than separate DinoX call pipelines.
The media paths are deliberately separated:
- On Linux, Google/libwebrtc captures raw microphone/camera frames for voice
and video messages. The
ffmpegcommand encodes and writes AAC/M4A or H.264+AAC/MP4 files. - On Windows, Google/libwebrtc captures the raw frames and Windows Media
Foundation encodes and writes the media-message files; a system
ffmpegexecutable is not used for this path. - GStreamer demuxes and decodes received/local media files, extracts metadata and thumbnails, and feeds decoded audio PCM to the selected libwebrtc speaker. It is neither the production call engine nor the Linux recorder muxer.
Google/libwebrtc owns ICE, STUN and TURN for calls. libnice remains packaged
only because the separate legacy ICE plugin currently also supplies local
address discovery and per-account Tor/SOCKS5 policy hooks to direct Jingle-S5B
file transfer. For targeted call diagnostics, see
DEBUG.md.
XEP Support
The machine-readable dino.doap file is the authoritative DinoX
protocol inventory. The complete matrix below mirrors all 101 XEPs currently
claimed there. It was reconciled against the production paths and tests on
master, and against the official XSF catalogue on 25 August 2026.
The coverage labels describe DinoX, not the formal maturity of the XEP:
- Production — shipped and used for the stated DinoX workflow. This does not claim every optional server or component role in the specification.
- Partial — a clearly bounded subset is shipped.
- Compatibility — a legacy or supporting profile is used, but it is not a separate complete user feature.
Complete claimed XEP matrix (101 entries)
| XEP | Official name | Coverage | DinoX scope |
|---|---|---|---|
| XEP-0004 | Data Forms | Production | Parses, renders and submits the forms used by registration, MUC, PubSub and commands. |
| XEP-0027 | Current Jabber OpenPGP Usage | Compatibility | Legacy OpenPGP messages and signed presence remain an enabled interoperability path. |
| XEP-0030 | Service Discovery | Production | Disco info/items, feature advertisement and capability caching. |
| XEP-0045 | Multi-User Chat | Partial | Common join, invitation, configuration, moderation, role and private-room workflows; not every optional historical role. |
| XEP-0047 | In-Band Bytestreams | Compatibility | Bytestream substrate used by XEP-0261. |
| XEP-0048 | Bookmarks | Compatibility | Legacy bookmark fallback; XEP-0402 is preferred when the server advertises conversion. |
| XEP-0049 | Private XML Storage | Production | Reads and writes the legacy private XML data used by fallback workflows. |
| XEP-0050 | Ad-Hoc Commands | Partial | Discovers and executes multi-step remote commands and supports local handlers; DinoX is not a general command server. |
| XEP-0054 | vcard-temp | Production | Reads and writes vCard-temp data, including the vCard avatar path. |
| XEP-0055 | Jabber Search | Production | Discovers search services and submits legacy or data-form searches. |
| XEP-0059 | Result Set Management | Partial | Paging support used by MAM queries. |
| XEP-0060 | Publish-Subscribe | Partial | PubSub/PEP operations required by shipped features, not a general PubSub administration client. |
| XEP-0065 | SOCKS5 Bytestreams | Compatibility | Discovery and proxy substrate used by XEP-0260. |
| XEP-0066 | Out of Band Data | Production | HTTP-upload links and interoperable file fallbacks. |
| XEP-0077 | In-Band Registration | Production | Registration forms, submission and the pre-authenticated registration integration. |
| XEP-0080 | User Location | Production | Publishes and displays location data where the platform supports it. |
| XEP-0082 | XMPP Date and Time Profiles | Production | Parses and emits XMPP date/time values. |
| XEP-0084 | User Avatar | Production | Publishes, retrieves and removes PEP avatars. |
| XEP-0085 | Chat State Notifications | Production | Sends and receives chat states subject to privacy settings. |
| XEP-0092 | Software Version | Production | Answers software-version requests. |
| XEP-0104 | HTTP Scheme for URL Data | Compatibility | Serialises HTTP sources used by thumbnails, stickers and file-sharing payloads. |
| XEP-0115 | Entity Capabilities | Production | Advertises and verifies capability hashes. |
| XEP-0128 | Service Discovery Extensions | Partial | Consumes extended disco forms for MUC room information and HTTP upload limits. |
| XEP-0133 | Service Administration | Partial | Exposes server-advertised administration commands through XEP-0050; server-specific commands remain separate. |
| XEP-0153 | vCard-Based Avatars | Compatibility | Receives and sends avatar hashes in normal and directed MUC presence alongside XEP-0084. |
| XEP-0158 | CAPTCHA Forms | Production | Handles CAPTCHA fields in registration/data-form workflows. |
| XEP-0163 | Personal Eventing Protocol | Production | PEP event and storage layer for avatars, bookmarks, keys and displayed-state sync. |
| XEP-0166 | Jingle | Partial | Session subset required by calls and direct file transfer. |
| XEP-0167 | Jingle RTP Sessions | Partial | Audio/video RTP subset bridged to the Google/libwebrtc worker. |
| XEP-0172 | User Nickname | Production | Publishes and consumes PEP nicknames. |
| XEP-0176 | Jingle ICE-UDP Transport Method | Partial | Call transport mapped to libwebrtc ICE; not every historical transport path is claimed. |
| XEP-0184 | Message Delivery Receipts | Production | Sends, receives and displays delivery receipts where the peer supports them. |
| XEP-0191 | Blocking Command | Production | Retrieves and changes the server block list. |
| XEP-0198 | Stream Management | Production | Stream acknowledgement and resumption on the stable connection path. |
| XEP-0199 | XMPP Ping | Production | Client and MUC liveness pings. |
| XEP-0202 | Entity Time | Partial | Requests and answers entity-time queries with per-account timezone sharing control; focused protocol regression coverage is still missing. |
| XEP-0203 | Delayed Delivery | Production | Parses archived/offline message timestamps. |
| XEP-0215 | External Service Discovery | Partial | Discovers STUN/TURN services needed by calls. |
| XEP-0221 | Data Forms Media Element | Partial | Parses and displays media embedded in data forms. |
| XEP-0222 | Persistent Storage of Public Data via PubSub | Compatibility | Public PEP storage profile used by feature payloads. |
| XEP-0223 | Persistent Storage of Private Data via PubSub | Compatibility | Private/whitelist PEP storage profile used by feature payloads. |
| XEP-0231 | Bits of Binary | Compatibility | Retrieves and renders embedded binary data used by forms and related payloads. |
| XEP-0234 | Jingle File Transfer | Partial | Direct send/receive with the supported S5B and IBB transports; not every optional profile. |
| XEP-0245 | The /me Command | Production | Sends and renders action messages. |
| XEP-0249 | Direct MUC Invitations | Partial | Receives direct invitations and has an internal sender; the normal room invitation UI deliberately uses mediated XEP-0045 invitations. |
| XEP-0260 | Jingle SOCKS5 Bytestreams Transport Method | Production | Direct and proxy-capable Jingle file-transfer transport with account routing policy. |
| XEP-0261 | Jingle In-Band Bytestreams Transport Method | Production | IBB fallback transport for Jingle file transfer. |
| XEP-0264 | Jingle Content Thumbnails | Partial | Thumbnail elements are used in SFS metadata; direct XEP-0234 offers do not carry them. |
| XEP-0272 | Multiparty Jingle (Muji) | Partial | Private-MUC group-session lifecycle is implemented; broader external-client interoperability still needs verification. |
| XEP-0280 | Message Carbons | Production | Synchronises sent and received messages across resources. |
| XEP-0292 | vCard4 Over XMPP | Partial | Reads and publishes the vCard4 fields used by DinoX. |
| XEP-0293 | Jingle RTP Feedback Negotiation | Partial | Maps supported RTCP feedback between Jingle and libwebrtc SDP. |
| XEP-0294 | Jingle RTP Header Extensions Negotiation | Partial | Maps supported RTP header extensions between Jingle and libwebrtc SDP. |
| XEP-0297 | Stanza Forwarding | Partial | Forwarded stanza handling for MAM and carbons, not a generic forwarding feature. |
| XEP-0298 | Delivering Conference Information to Jingle Participants (Coin) | Partial | Parses conference information used by the call UI. |
| XEP-0300 | Use of Cryptographic Hash Functions in XMPP | Production | Hash parsing and serialisation for avatars, files and thumbnails. |
| XEP-0308 | Last Message Correction | Production | Sends, receives and projects message edits. |
| XEP-0313 | Message Archive Management | Partial | MAM2 history synchronisation and paging; not general archive administration. |
| XEP-0317 | Hats | Partial | Parses and displays hats and supports the advertised hat administration commands used by DinoX. |
| XEP-0320 | Use of DTLS-SRTP in Jingle Sessions | Production | Mandatory fingerprinted DTLS-SRTP on the current call path. |
| XEP-0333 | Displayed Markers | Production | Read/displayed projection for 1:1, MUC and private-MUC conversations, subject to settings and peer support. |
| XEP-0334 | Message Processing Hints | Partial | Emits and consumes the hints required by the shipped message workflows. |
| XEP-0352 | Client State Indication | Production | Reports foreground/background state to the server. |
| XEP-0353 | Jingle Message Initiation | Production | XEP-0353 0.8.0 lifecycle for one-to-one Google/libwebrtc calls, including ringing, finish reasons, tie-breaking, full-JID migration and passive MAM/Carbon recovery. Private-room MUJI calls use their separate XEP-0272/XEP-0482 lifecycle. |
| XEP-0359 | Unique and Stable Stanza IDs | Production | Origin, stanza and stable IDs used for deduplication and message actions. |
| XEP-0363 | HTTP File Upload | Production | Slot discovery/request, upload limits, headers, errors and legacy/current namespace interop. |
| XEP-0367 | Message Attaching | Partial | Attach-to handling used for stateless file-source updates. |
| XEP-0368 | SRV records for XMPP over TLS | Production | Resolves direct-TLS client SRV records. |
| XEP-0372 | References | Partial | Parses and emits MUC mention references; other reference types are not claimed. |
| XEP-0373 | OpenPGP for XMPP | Production | Publishes, retrieves and verifies OpenPGP keys through PEP. |
| XEP-0374 | OpenPGP for XMPP Instant Messaging | Partial | Production supports signcrypt text messages; sign-only, crypt-only and arbitrary protected payloads are not wired into the runtime. |
| XEP-0379 | Pre-Authenticated Roster Subscription | Production | Parses invitation links and sends token-bearing subscription requests. |
| XEP-0380 | Explicit Message Encryption | Partial | Adds explicit-encryption metadata to outgoing encrypted messages. |
| XEP-0384 | OMEMO Encryption | Partial | Legacy OMEMO is enabled in production; OMEMO 2 source/tests exist but are disabled in stable builds. |
| XEP-0391 | Jingle Encrypted Transports | Partial | JET framework used by encrypted direct file transfer. |
| XEP-0392 | Consistent Color Generation | Production | Deterministic contact and participant colours. |
| XEP-0393 | Message Styling | Partial | Supports the styling syntax rendered by the DinoX message view. |
| XEP-0394 | Message Markup | Partial | Emphasis, strong-emphasis and deletion spans; other span types are not claimed. |
| XEP-0396 | Jingle Encrypted Transports - OMEMO | Production | Enabled JET-OMEMO path uses the production legacy OMEMO namespace. |
| XEP-0401 | Ad-hoc Account Invitation Generation | Partial | Discovers and executes invitation commands and parses returned account or roster invitation URIs. |
| XEP-0402 | PEP Native Bookmarks | Production | Reads, publishes, updates and removes PEP bookmarks. |
| XEP-0410 | MUC Self-Ping (Schrödinger's Chat) | Production | Checks room liveness and drives rejoin recovery. |
| XEP-0411 | Bookmarks Conversion | Compatibility | Uses the deprecated compatibility feature only to select XEP-0402 or XEP-0048. |
| XEP-0421 | Occupant identifiers for semi-anonymous MUCs | Production | Parses, stores and uses occupant IDs for stable MUC identity. |
| XEP-0422 | Message Fastening | Compatibility | Parses and emits the older fastening wrapper only for retraction interoperability. |
| XEP-0424 | Message Retraction | Production | Current direct retraction plus older namespace/wrapper interop, fallback handling and local projection. |
| XEP-0425 | Moderated Message Retraction | Partial | Moderator-side retraction works; actor/reason metadata and MAM tombstones are not represented separately. Kick, ban and roles are XEP-0045. |
| XEP-0428 | Fallback Indication | Partial | Fallback ranges used by replies and retractions. |
| XEP-0440 | SASL Channel-Binding Type Capability | Production | SASL1 SCRAM-PLUS negotiates tls-exporter or tls-server-end-point; this is not a SASL2 claim. |
| XEP-0444 | Message Reactions | Production | Sends, receives, aggregates and removes reactions. |
| XEP-0445 | Pre-Authenticated In-Band Registration | Production | Discovers support and submits the pre-authentication token during registration. |
| XEP-0446 | File metadata element | Partial | Implements the metadata fields used by DinoX file-sharing paths. |
| XEP-0447 | Stateless file sharing | Partial | HTTP sources and source updates; not every source type or optional field. |
| XEP-0448 | Encryption for stateless file sharing | Partial | Incoming ESFS is validated and decrypted; outgoing encryption uses the aesgcm URL body path instead of emitting ESFS. |
| XEP-0449 | Stickers | Production | Publishes, retrieves and sends sticker packs. |
| XEP-0453 | DOAP usage in XMPP | Production | The authoritative dino.doap capability document follows this profile. |
| XEP-0454 | OMEMO Media sharing | Partial | Encrypted media sharing without embedded-thumbnail support. |
| XEP-0461 | Message Replies | Production | Replies, quoted fallback removal and sender validation. |
| XEP-0482 | Call Invites | Partial | Jingle/MUJI invite, accept, retract, reject and left signalling for private-MUC calls; broader external-client interoperability remains unverified. |
| XEP-0486 | MUC Avatars | Production | Discovers bookmarked-room avatars before joining, verifies advertised roominfo hashes against vCard image bytes, follows status-code 104 refreshes, and supports joined-room publication and removal. Live ejabberd/Gajim interoperability covers these client paths. Discovery runs one room at a time in bounded, refillable batches; conference-list and member-list rows remain local-cache-only. |
| XEP-0490 | Message Displayed Synchronization | Production | Regular PEP sync, capability-gated server assistance and regular PEP for private-MUC conversations. |
Known gaps and next protocol work
These are explicit non-claims, not hidden implementation details:
| XEP | Current state | Required follow-up |
|---|---|---|
| XEP-0177 | Non-operational skeleton | Stop advertising Raw UDP unless a real connection path is implemented. |
| XEP-0338 | Not implemented | Decide whether call interoperability requires Jingle grouping/BUNDLE; current audio/video contents use separate transports. |
| XEP-0357 | Roadmap | Implement only when a tested desktop push use case and server matrix are defined. |
| XEP-0374 | Signcrypt text only | Wire and test sign-only, crypt-only and other protected payloads before claiming the complete IM profile. |
| XEP-0384 / XEP-0420 | Legacy OMEMO is claimed; OMEMO 2/SCE is not claimed in stable builds | Complete multi-client migration, downgrade and SCE interoperability gates before enabling the stable runtime. |
| XEP-0386 / XEP-0388 / XEP-0484 | Feature branch only | Rebase and merge SASL2/Bind2/FAST only after the upstream/server fixes and safe token-migration tests are available. |
| XEP-0398 | Not implemented | Add conversion-feature discovery and directed-presence refresh only if this compatibility path is needed. |
| XEP-0425 | Partial moderation metadata | Preserve moderator, reason and archived tombstone details if the UI and local model are extended for them. |
| XEP-0426 | Not implemented | Implement only if protocol-level character counting becomes a DinoX requirement. |
| XEP-0448 | Incoming only | Add an outgoing ESFS producer and wire-level tests before claiming bidirectional support. |
| XEP-0272 / XEP-0482 | Partial | Extend real server/client interoperability testing beyond DinoX's internal and same-client coverage. |
DinoX does not aim to implement every XEP in the catalogue. New claims should be added only when a production call path and its exact boundary can be shown in code and tests.
Screenshots
Resources
| Resource | Link |
|---|---|
| Website | dinox.im |
| Source | git.dinox.im/dinoxim/dinox |
| Releases | DinoX Releases |
| Milestone | DinoX 2.0.0 Relaunch |
| Issues | Bug Tracker |
| Security | Security Policy |
| XMPP Chat Room | dinox@conference.dinox.im |
| XMPP Contact | dinox@dinox.im |
| contact@dinox.im |
Contributing
Use Forgejo Issues for bug reports and feature requests. For code changes, DinoX uses Forgejo AGit pull requests instead of forks:
git clone ssh://git@git.dinox.im:2222/dinoxim/dinox.git
cd dinox
git checkout -b fix-short-topic
# edit, build, test, commit
git push origin HEAD:refs/for/master -o topic="fix-short-topic"
See CONTRIBUTING.md for the full contributor workflow.
Debug Mode
See DEBUG.md for debugging instructions.
License
DinoX is free software licensed under GPL-3.0-or-later. Copyright and fork attribution are recorded in NOTICE.
Official Linux binary packages and the portable Windows distribution also
contain third-party components under their respective licenses.
Package-specific notices are installed with DinoX. The Windows ZIP contains
hash-bound inventories for every packaged PE file, bundled third-party runtime
assets, embedded Google/libwebrtc and Lyrebird Go components, and every
included license file, but no large source archives or build caches. Large
corresponding source payloads for the AppImage are published as a separate matching
.AppImage.sources.tar.xz release asset, so they do not enlarge the runnable
AppImage and are not required to run it. See the
build and packaging documentation and the
Flatpak third-party inventory for
details.
Made for the XMPP community