feat: add fluxer upstream source and self-hosting documentation
- Clone of github.com/fluxerapp/fluxer (official upstream) - SELF_HOSTING.md: full VM rebuild procedure, architecture overview, service reference, step-by-step setup, troubleshooting, seattle reference - dev/.env.example: all env vars with secrets redacted and generation instructions - dev/livekit.yaml: LiveKit config template with placeholder keys - fluxer-seattle/: existing seattle deployment setup scripts
This commit is contained in:
51
fluxer/fluxer_desktop/packaging/aur/PKGBUILD
Normal file
51
fluxer/fluxer_desktop/packaging/aur/PKGBUILD
Normal file
@@ -0,0 +1,51 @@
|
||||
# Maintainer: Fluxer Contributors <developers@fluxer.app>
|
||||
pkgname=fluxer-bin
|
||||
pkgver=PLACEHOLDER_VERSION
|
||||
pkgrel=1
|
||||
pkgdesc='Instant messaging and VoIP application'
|
||||
arch=('x86_64' 'aarch64')
|
||||
url='https://fluxer.app'
|
||||
license=('AGPL-3.0-or-later')
|
||||
depends=('gtk3' 'libnotify' 'nss' 'libxss' 'libxtst' 'xdg-utils'
|
||||
'at-spi2-core' 'util-linux-libs' 'libsecret' 'libappindicator-gtk3')
|
||||
optdepends=('libpipewire: screen sharing via PipeWire')
|
||||
provides=('fluxer')
|
||||
conflicts=('fluxer')
|
||||
options=('!strip' '!debug')
|
||||
|
||||
_filename_x86_64="fluxer-stable-${pkgver}-x86_64.tar.gz"
|
||||
_filename_aarch64="fluxer-stable-${pkgver}-aarch64.tar.gz"
|
||||
|
||||
source_x86_64=("${_filename_x86_64}::https://api.fluxer.app/dl/desktop/stable/linux/x64/${pkgver}/tar_gz")
|
||||
source_aarch64=("${_filename_aarch64}::https://api.fluxer.app/dl/desktop/stable/linux/arm64/${pkgver}/tar_gz")
|
||||
sha256sums_x86_64=('PLACEHOLDER_SHA256_X64')
|
||||
sha256sums_aarch64=('PLACEHOLDER_SHA256_ARM64')
|
||||
|
||||
package() {
|
||||
install -d "${pkgdir}/opt/fluxer"
|
||||
cp -r "${srcdir}/"* "${pkgdir}/opt/fluxer/"
|
||||
chmod +x "${pkgdir}/opt/fluxer/fluxer"
|
||||
|
||||
install -d "${pkgdir}/usr/bin"
|
||||
ln -s /opt/fluxer/fluxer "${pkgdir}/usr/bin/fluxer"
|
||||
|
||||
install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/fluxer.desktop" <<EOF
|
||||
[Desktop Entry]
|
||||
Name=Fluxer
|
||||
Comment=Instant messaging and VoIP application
|
||||
Exec=/opt/fluxer/fluxer %U
|
||||
Icon=fluxer
|
||||
Type=Application
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=fluxer
|
||||
MimeType=x-scheme-handler/fluxer;
|
||||
Terminal=false
|
||||
EOF
|
||||
|
||||
for size in 16 32 48 64 128 256 512; do
|
||||
if [ -f "${srcdir}/resources/icons/${size}x${size}.png" ]; then
|
||||
install -Dm644 "${srcdir}/resources/icons/${size}x${size}.png" \
|
||||
"${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/fluxer.png"
|
||||
fi
|
||||
done
|
||||
}
|
||||
24
fluxer/fluxer_desktop/packaging/aur/README.md
Normal file
24
fluxer/fluxer_desktop/packaging/aur/README.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Fluxer AUR package
|
||||
|
||||
PKGBUILD for the `fluxer-bin` AUR binary package. This installs pre-built binaries rather than building from source, since Electron apps are impractical to compile within the AUR build system.
|
||||
|
||||
## Placeholders
|
||||
|
||||
The `pkgver` and `sha256sums` fields are set to placeholder values. Update them before publishing:
|
||||
|
||||
- Run `updpkgsums` to fetch and fill checksums automatically.
|
||||
- Alternatively, query the latest version from the API and update manually.
|
||||
|
||||
## Testing locally
|
||||
|
||||
```bash
|
||||
makepkg -si
|
||||
```
|
||||
|
||||
## Fetching the latest version
|
||||
|
||||
```bash
|
||||
curl -s https://api.fluxer.app/dl/desktop/stable/linux/x64/latest | jq
|
||||
```
|
||||
|
||||
This returns a JSON object containing `version`, `pub_date`, and `files` with download URLs and SHA256 checksums for each format.
|
||||
25
fluxer/fluxer_desktop/packaging/homebrew/README.md
Normal file
25
fluxer/fluxer_desktop/packaging/homebrew/README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Fluxer Homebrew cask
|
||||
|
||||
Homebrew cask definition for installing Fluxer on macOS.
|
||||
|
||||
## Placeholders
|
||||
|
||||
The `version` and `sha256` fields are set to placeholder values. Update them before publishing or submitting to a tap.
|
||||
|
||||
## Livecheck
|
||||
|
||||
The cask includes a `livecheck` block that queries the Fluxer download API for the latest stable version. Homebrew's automated tooling uses this to detect new releases.
|
||||
|
||||
## Testing locally
|
||||
|
||||
```bash
|
||||
brew install --cask ./fluxer.rb
|
||||
```
|
||||
|
||||
## Fetching the latest version
|
||||
|
||||
```bash
|
||||
curl -s https://api.fluxer.app/dl/desktop/stable/darwin/arm64/latest | jq
|
||||
```
|
||||
|
||||
This returns a JSON object containing `version`, `pub_date`, and `files` with download URLs and SHA256 checksums for each format.
|
||||
37
fluxer/fluxer_desktop/packaging/homebrew/fluxer.rb
Normal file
37
fluxer/fluxer_desktop/packaging/homebrew/fluxer.rb
Normal file
@@ -0,0 +1,37 @@
|
||||
cask "fluxer" do
|
||||
arch arm: "arm64", intel: "x64"
|
||||
|
||||
version "PLACEHOLDER_VERSION"
|
||||
|
||||
on_arm do
|
||||
sha256 "PLACEHOLDER_SHA256_ARM64"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "PLACEHOLDER_SHA256_X64"
|
||||
end
|
||||
|
||||
url "https://api.fluxer.app/dl/desktop/stable/darwin/#{arch}/#{version}/dmg"
|
||||
name "Fluxer"
|
||||
desc "Instant messaging and VoIP application"
|
||||
homepage "https://fluxer.app"
|
||||
|
||||
livecheck do
|
||||
url "https://api.fluxer.app/dl/desktop/stable/darwin/arm64/latest"
|
||||
strategy :json do |json|
|
||||
json["version"]
|
||||
end
|
||||
end
|
||||
|
||||
auto_updates true
|
||||
depends_on macos: ">= :catalina"
|
||||
|
||||
app "Fluxer.app"
|
||||
|
||||
zap trash: [
|
||||
"~/Library/Application Support/Fluxer",
|
||||
"~/Library/Caches/app.fluxer",
|
||||
"~/Library/Caches/app.fluxer.ShipIt",
|
||||
"~/Library/Preferences/app.fluxer.plist",
|
||||
"~/Library/Saved Application State/app.fluxer.savedState",
|
||||
]
|
||||
end
|
||||
6
fluxer/fluxer_desktop/packaging/linux/README.md
Normal file
6
fluxer/fluxer_desktop/packaging/linux/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Fluxer Linux metadata
|
||||
These files are for Linux desktop integration and package managers/app stores.
|
||||
## Files
|
||||
- `app.fluxer.Fluxer.desktop` - XDG desktop entry for app launchers
|
||||
- `app.fluxer.Fluxer.metainfo.xml` - AppStream metadata for package manager and app store listings
|
||||
- `app.fluxer.Fluxer.svg` - Application icon
|
||||
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Name=Fluxer
|
||||
Comment=Instant messaging and VoIP application
|
||||
Exec=app.fluxer.Fluxer %U
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=app.fluxer.Fluxer
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=app.fluxer.Fluxer
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>app.fluxer.Fluxer</id>
|
||||
<launchable type="desktop-id">app.fluxer.Fluxer.desktop</launchable>
|
||||
<name>Fluxer</name>
|
||||
<developer id="app.fluxer">
|
||||
<name>Fluxer</name>
|
||||
</developer>
|
||||
<summary>Instant messaging and VoIP application</summary>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>AGPL-3.0-or-later</project_license>
|
||||
<icon type="stock">app.fluxer.Fluxer</icon>
|
||||
<description>
|
||||
<p>Fluxer is a free and open-source instant messaging and voice-over-IP application. It provides text chat, voice calls, video calls, and screen sharing in a modern interface.</p>
|
||||
<p>Features include:</p>
|
||||
<ul>
|
||||
<li>Text messaging with rich formatting and media support</li>
|
||||
<li>Voice and video calls</li>
|
||||
<li>Screen sharing</li>
|
||||
<li>Communities with channels</li>
|
||||
<li>Direct messages and group chats</li>
|
||||
<li>Custom emoji and reactions</li>
|
||||
</ul>
|
||||
</description>
|
||||
<categories>
|
||||
<category>Network</category>
|
||||
<category>InstantMessaging</category>
|
||||
</categories>
|
||||
<branding>
|
||||
<color type="primary">#4641D9</color>
|
||||
</branding>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<caption>The main Fluxer window.</caption>
|
||||
<image type="source" width="1920" height="1080">https://fluxerstatic.com/marketing/screenshots/desktop-1920w.avif</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<releases>
|
||||
<release version="0.0.8" date="2026-02-16"/>
|
||||
</releases>
|
||||
<url type="bugtracker">https://github.com/fluxerapp/fluxer/issues</url>
|
||||
<url type="homepage">https://fluxer.app</url>
|
||||
<url type="donation">https://fluxer.app/donate</url>
|
||||
<url type="vcs-browser">https://github.com/fluxerapp/fluxer.git</url>
|
||||
<update_contact>fen@unix.dog</update_contact>
|
||||
<content_rating type="oars-1.1">
|
||||
<content_attribute id="social-chat">intense</content_attribute>
|
||||
<content_attribute id="social-info">intense</content_attribute>
|
||||
<content_attribute id="social-audio">intense</content_attribute>
|
||||
<content_attribute id="social-contacts">intense</content_attribute>
|
||||
</content_rating>
|
||||
<requires>
|
||||
<internet>always</internet>
|
||||
</requires>
|
||||
<supports>
|
||||
<control>keyboard</control>
|
||||
<control>pointing</control>
|
||||
</supports>
|
||||
</component>
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33.87 33.87"><g transform="translate(-32.28 -138.64)"><circle cx="49.21" cy="155.57" r="15.74" fill="none" stroke="currentColor" stroke-width=".26" opacity=".2" style="marker:none"/><path fill="#4641d9" d="M65.09 155.57a15.87 15.87 0 1 0-31.75 0 15.87 15.87 0 0 0 31.75 0z"/><path fill="#fff" d="M40.84 154.16c-.83 0-1.53-.68-1.42-1.5.1-.9.34-1.66.69-2.29a5 5 0 0 1 2.1-2.08 6.07 6.07 0 0 1 2.74-.65c.97 0 1.84.21 2.63.65a17 17 0 0 1 2.76 1.96c.7.6 1.27 1.02 1.67 1.27.42.25.88.37 1.4.37.81 0 1.46-.3 1.93-.88.23-.28.4-.62.5-1.02.24-.83.88-1.56 1.74-1.56.83 0 1.53.67 1.43 1.5-.1.9-.33 1.66-.7 2.29a4.98 4.98 0 0 1-2.1 2.08 6.07 6.07 0 0 1-5.39.04 14.4 14.4 0 0 1-2.75-2c-.68-.6-1.23-1.01-1.66-1.26a2.7 2.7 0 0 0-1.4-.38 2.43 2.43 0 0 0-2.47 1.91c-.2.83-.84 1.55-1.7 1.55zm0 8.56c-.83 0-1.53-.68-1.42-1.5.1-.9.34-1.66.69-2.29a5 5 0 0 1 2.1-2.08 6.07 6.07 0 0 1 2.74-.65c.97 0 1.84.22 2.63.65a17.5 17.5 0 0 1 2.76 1.96c.7.6 1.27 1.02 1.67 1.27.42.25.88.37 1.4.37.81 0 1.46-.3 1.93-.88.23-.28.4-.62.5-1.02.24-.83.88-1.56 1.74-1.56.83 0 1.53.67 1.43 1.5-.1.9-.33 1.66-.7 2.29a4.98 4.98 0 0 1-2.1 2.08 6.07 6.07 0 0 1-5.39.04 14.4 14.4 0 0 1-2.75-2c-.68-.6-1.23-1.01-1.66-1.26a2.7 2.7 0 0 0-1.4-.38 2.43 2.43 0 0 0-2.47 1.91c-.2.83-.84 1.55-1.7 1.55z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,19 @@
|
||||
PackageIdentifier: Fluxer.Fluxer
|
||||
PackageVersion: PLACEHOLDER_VERSION
|
||||
MinimumOSVersion: 10.0.17763.0
|
||||
InstallerType: nullsoft
|
||||
Scope: user
|
||||
InstallModes:
|
||||
- interactive
|
||||
- silent
|
||||
- silentWithProgress
|
||||
UpgradeBehavior: install
|
||||
Installers:
|
||||
- Architecture: x64
|
||||
InstallerUrl: https://api.fluxer.app/dl/desktop/stable/win32/x64/PLACEHOLDER_VERSION/setup
|
||||
InstallerSha256: PLACEHOLDER_SHA256_X64
|
||||
- Architecture: arm64
|
||||
InstallerUrl: https://api.fluxer.app/dl/desktop/stable/win32/arm64/PLACEHOLDER_VERSION/setup
|
||||
InstallerSha256: PLACEHOLDER_SHA256_ARM64
|
||||
ManifestType: installer
|
||||
ManifestVersion: 1.6.0
|
||||
@@ -0,0 +1,22 @@
|
||||
PackageIdentifier: Fluxer.Fluxer
|
||||
PackageVersion: PLACEHOLDER_VERSION
|
||||
PackageLocale: en-US
|
||||
Publisher: Fluxer Contributors
|
||||
PublisherUrl: https://fluxer.app
|
||||
PublisherSupportUrl: https://github.com/fluxerapp/fluxer/issues
|
||||
PackageName: Fluxer
|
||||
PackageUrl: https://fluxer.app
|
||||
License: AGPL-3.0-or-later
|
||||
LicenseUrl: https://github.com/fluxerapp/fluxer/blob/main/LICENCE
|
||||
ShortDescription: Instant messaging and VoIP application
|
||||
Description: Fluxer is a free and open-source instant messaging and voice-over-IP application. It provides text chat, voice calls, video calls, and screen sharing in a modern, privacy-respecting interface.
|
||||
Tags:
|
||||
- chat
|
||||
- messaging
|
||||
- voip
|
||||
- voice
|
||||
- video
|
||||
- communication
|
||||
- open-source
|
||||
ManifestType: defaultLocale
|
||||
ManifestVersion: 1.6.0
|
||||
@@ -0,0 +1,5 @@
|
||||
PackageIdentifier: Fluxer.Fluxer
|
||||
PackageVersion: PLACEHOLDER_VERSION
|
||||
DefaultLocale: en-US
|
||||
ManifestType: version
|
||||
ManifestVersion: 1.6.0
|
||||
33
fluxer/fluxer_desktop/packaging/winget/README.md
Normal file
33
fluxer/fluxer_desktop/packaging/winget/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Fluxer Winget manifest
|
||||
|
||||
Windows Package Manager (winget) manifest for installing Fluxer on Windows.
|
||||
|
||||
## Placeholders
|
||||
|
||||
The `PackageVersion` and `InstallerSha256` fields are set to placeholder values across all three manifest files. Update them before submitting to the winget-pkgs repository.
|
||||
|
||||
## Manifest files
|
||||
|
||||
- `Fluxer.Fluxer.yaml` -- version manifest (required)
|
||||
- `Fluxer.Fluxer.installer.yaml` -- installer details for x64 and arm64
|
||||
- `Fluxer.Fluxer.locale.en-US.yaml` -- default locale metadata
|
||||
|
||||
## Validating
|
||||
|
||||
```bash
|
||||
winget validate --manifest .
|
||||
```
|
||||
|
||||
## Testing locally
|
||||
|
||||
```bash
|
||||
winget install --manifest .
|
||||
```
|
||||
|
||||
## Fetching the latest version
|
||||
|
||||
```bash
|
||||
curl -s https://api.fluxer.app/dl/desktop/stable/win32/x64/latest | jq
|
||||
```
|
||||
|
||||
This returns a JSON object containing `version`, `pub_date`, and `files` with download URLs and SHA256 checksums for each format.
|
||||
Reference in New Issue
Block a user