Skip to content

Commit 431c853

Browse files
committed
Initial project import with source, assets, and configs
Add all core source files, assets, configuration files, and platform-specific build scripts for Echo Music Desktop. Includes documentation, localization, platform assets, and setup for Windows, macOS, and Linux builds.
1 parent b25d8f2 commit 431c853

264 files changed

Lines changed: 28705 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

BUILDING_LINUX.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Building Linux Packages for Echo Music
2+
3+
This guide explains how to build Linux distribution packages (DEB, AppImage, RPM) for Echo Music Desktop.
4+
5+
## Platform Limitation ⚠️
6+
7+
**Linux packages cannot be built on macOS.** The `flutter_distributor` tool requires a Linux environment to build Linux packages.
8+
9+
## Available Package Formats
10+
11+
The project is configured to build three Linux package formats:
12+
13+
- **DEB** - For Debian, Ubuntu, and derivatives
14+
- **AppImage** - Universal Linux package (works on most distributions)
15+
- **RPM** - For Fedora, RHEL, CentOS, and derivatives
16+
17+
## Option 1: Manual Build on Linux
18+
19+
### Prerequisites
20+
```bash
21+
# Install system dependencies
22+
sudo apt-get update
23+
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev
24+
25+
# Install Flutter (if not already installed)
26+
# Follow: https://docs.flutter.dev/get-started/install/linux
27+
28+
# Install flutter_distributor
29+
flutter pub global activate flutter_distributor
30+
```
31+
32+
### Build All Packages
33+
```bash
34+
# Navigate to project directory
35+
cd /path/to/Echo-Music-Desktop
36+
37+
# Install dependencies
38+
flutter pub get
39+
40+
# Build all Linux packages
41+
flutter_distributor release --name dev --jobs release-dev-linux-deb,release-dev-linux-appimage,release-dev-linux-rpm
42+
```
43+
44+
### Build Specific Package Type
45+
```bash
46+
# DEB only
47+
flutter_distributor release --name dev --jobs release-dev-linux-deb
48+
49+
# AppImage only
50+
flutter_distributor release --name dev --jobs release-dev-linux-appimage
51+
52+
# RPM only
53+
flutter_distributor release --name dev --jobs release-dev-linux-rpm
54+
```
55+
56+
### Output Location
57+
Packages will be created in: `dist/1.0.0+0/`
58+
59+
## Option 2: GitHub Actions (Recommended)
60+
61+
A GitHub Actions workflow has been created at `.github/workflows/build-linux.yml`.
62+
63+
### Trigger the Workflow
64+
65+
**Method 1: Manual Trigger**
66+
1. Go to your GitHub repository
67+
2. Click "Actions" tab
68+
3. Select "Build Linux Packages" workflow
69+
4. Click "Run workflow"
70+
71+
**Method 2: Tag-based Release**
72+
```bash
73+
# Create and push a version tag
74+
git tag v1.0.0
75+
git push origin v1.0.0
76+
```
77+
78+
The workflow will automatically:
79+
- Build all three package types
80+
- Upload packages as artifacts
81+
- Create a GitHub Release (if triggered by tag)
82+
83+
## Option 3: Docker
84+
85+
Create a temporary Linux container to build packages:
86+
87+
```bash
88+
# Run Ubuntu container with Flutter
89+
docker run -it --rm -v $(pwd):/workspace ubuntu:22.04 bash
90+
91+
# Inside container:
92+
apt-get update
93+
apt-get install -y curl git unzip xz-utils zip libglu1-mesa clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev
94+
95+
# Install Flutter
96+
git clone https://github.com/flutter/flutter.git -b stable
97+
export PATH="$PATH:`pwd`/flutter/bin"
98+
99+
# Navigate and build
100+
cd /workspace
101+
flutter pub get
102+
flutter pub global activate flutter_distributor
103+
export PATH="$PATH:$HOME/.pub-cache/bin"
104+
flutter_distributor release --name dev
105+
```
106+
107+
## Distribution
108+
109+
Once built, distribute the packages:
110+
111+
- **DEB**: Users install with `sudo dpkg -i Echo-*.deb`
112+
- **AppImage**: Users make executable and run: `chmod +x Echo-*.AppImage && ./Echo-*.AppImage`
113+
- **RPM**: Users install with `sudo rpm -i Echo-*.rpm`
114+
115+
## Current Status
116+
117+
- ✅ Configuration ready for DEB, AppImage, and RPM
118+
- ✅ GitHub Actions workflow created
119+
- ⚠️ Requires Linux environment to build

README.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<div align="center">
2+
<img src="assets/Echo_github.png" alt="Echo Music Logo" width="140"/>
3+
<h1>Echo Music Desktop</h1>
4+
<p><strong>A robust, open-source music streaming client for Desktop</strong></p>
5+
<p>Ad-free experience, offline capabilities, and advanced music discovery.</p>
6+
7+
<a href="https://github.com/iad1tya/Echo-Music/releases/latest"><img src="assets/Windows-button.png" alt="Download for Windows" width="170"/></a>
8+
<a href="https://github.com/iad1tya/Echo-Music/releases/latest"><img src="assets/mac-button.png" alt="Download for Mac" width="170"/></a>
9+
</div>
10+
11+
---
12+
13+
## Overview
14+
15+
Echo Music Desktop brings the premium music listening experience to your computer. Built with Flutter, it offers a seamless interface to stream music from YouTube Music without advertisements, along with powerful desktop-centric features.
16+
17+
## Features
18+
19+
* **Ad-Free Streaming:** Enjoy uninterrupted music playback.
20+
* **High Quality Audio:** Stream in the best available quality.
21+
* **Offline Mode:** Download your favorite tracks and playlists for offline listening.
22+
* **Lyrics Support:** Real-time synchronized lyrics with AI-powered translation.
23+
* **Broad Compatibility:** Cross-platform support for Windows, macOS, and Linux.
24+
* **Smart Recommendations:** Personalized song suggestions based on your listening history.
25+
* **Sleep Timer:** Configure automatic playback cessation.
26+
27+
## Installation
28+
29+
### Windows
30+
1. Download the latest installer (`.exe`) from the [Releases Page](https://github.com/iad1tya/Echo-Music/releases/latest).
31+
2. Run the installer and follow the on-screen prompts.
32+
33+
### macOS
34+
1. Download the `.dmg` file from the [Releases Page](https://github.com/iad1tya/Echo-Music/releases/latest).
35+
2. Open the disk image and drag "Echo Music" to your Applications folder.
36+
3. *Note: If you encounter a security warning, go to System Settings > Privacy & Security and allow the application.*
37+
38+
### Linux
39+
Echo Music is available as an AppImage, DEB, and RPM package.
40+
1. Download the appropriate package from the [Releases Page](https://github.com/iad1tya/Echo-Music/releases/latest).
41+
2. **AppImage**: Make it executable (`chmod +x Echo-Music-*.AppImage`) and run it.
42+
3. **DEB/RPM**: Install using your package manager (e.g., `sudo dpkg -i package.deb`).
43+
44+
## Build from Source
45+
46+
To build Echo Music locally, ensure you have Flutter installed and configured for desktop development.
47+
48+
1. **Clone the Repository**
49+
```bash
50+
git clone https://github.com/iad1tya/Echo-Music.git
51+
cd Echo-Music
52+
```
53+
54+
2. **Enable Desktop Support**
55+
Enable the platforms you intend to build for:
56+
```bash
57+
flutter config --enable-windows-desktop
58+
flutter config --enable-macos-desktop
59+
flutter config --enable-linux-desktop
60+
```
61+
62+
3. **Install Dependencies**
63+
```bash
64+
flutter pub get
65+
```
66+
67+
4. **Run the Application**
68+
```bash
69+
flutter run -d [windows|macos|linux]
70+
```
71+
72+
5. **Build for Release**
73+
```bash
74+
flutter build [windows|macos|linux]
75+
```
76+
77+
---
78+
79+
## Community and Support
80+
81+
Join our community for updates, support, and discussions.
82+
83+
<div align="center">
84+
<a href="https://discord.gg/EcfV3AxH5c"><img src="assets/discord.png" width="140"/></a>
85+
<a href="https://t.me/EchoMusicApp"><img src="assets/telegram.png" width="130"/></a>
86+
</div>
87+
88+
### Support the Project
89+
90+
If you find this project useful, consider supporting its development.
91+
92+
<div align="center">
93+
<a href="https://buymeacoffee.com/iad1tya"><img src="assets/bmac.png" width="140"/></a>
94+
<a href="https://intradeus.github.io/http-protocol-redirector/?r=upi://pay?pa=iad1tya@upi&pn=Aditya%20Yadav&am=&tn=Thank%20You"><img src="assets/upi.svg" width="100"/></a>
95+
<a href="https://www.patreon.com/cw/iad1tya"><img src="assets/patreon3.png" width="100"/></a>
96+
</div>
97+
98+
### Cryptocurrency Addresses
99+
<div align="center">
100+
<table>
101+
<tr>
102+
<td align="center"><strong>Bitcoin</strong><br><img src="assets/Bitcoin.jpeg" width="150"/><br><code>bc1qcvyr7eekha8uytmffcvgzf4h7xy7shqzke35fy</code></td>
103+
<td align="center"><strong>Ethereum</strong><br><img src="assets/Ethereum.jpeg" width="150"/><br><code>0x51bc91022E2dCef9974D5db2A0e22d57B360e700</code></td>
104+
<td align="center"><strong>Solana</strong><br><img src="assets/Solana.jpeg" width="150"/><br><code>9wjca3EQnEiqzqgy7N5iqS1JGXJiknMQv6zHgL96t94S</code></td>
105+
</tr>
106+
</table>
107+
</div>
108+
109+
110+
---
111+
112+
<div align="center">
113+
Licensed under <a href="LICENSE">GPL-3.0</a>
114+
</div>

analysis_options.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# This file configures the analyzer, which statically analyzes Dart code to
2+
# check for errors, warnings, and lints.
3+
#
4+
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5+
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6+
# invoked from the command line by running `flutter analyze`.
7+
8+
# The following line activates a set of recommended lints for Flutter apps,
9+
# packages, and plugins designed to encourage good coding practices.
10+
include: package:flutter_lints/flutter.yaml
11+
12+
linter:
13+
# The lint rules applied to this project can be customized in the
14+
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
15+
# included above or to enable additional rules. A list of all available lints
16+
# and their documentation is published at https://dart.dev/lints.
17+
#
18+
# Instead of disabling a lint rule for the entire project in the
19+
# section below, it can also be suppressed for a single line of code
20+
# or a specific dart file by using the `// ignore: name_of_lint` and
21+
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
22+
# producing the lint.
23+
rules:
24+
# avoid_print: false # Uncomment to disable the `avoid_print` rule
25+
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
26+
27+
# Additional information about this file can be found at
28+
# https://dart.dev/guides/language/analysis-options

assets/Ai.png

8.24 KB
Loading

assets/Bitcoin.jpeg

143 KB
Loading

assets/Echo_github.png

180 KB
Loading

assets/Ethereum.jpeg

147 KB
Loading

assets/LMEB.gif

2.88 MB
Loading

assets/Solana.jpeg

147 KB
Loading

assets/Supporter/AdamPoy.png

34 KB
Loading

0 commit comments

Comments
 (0)