A centralized platform for managing and distributing mobile applications across different platforms and environments.
- Multi-platform support (iOS, Android, Apple TV, Android TV)
- Environment-based versioning (Production, Test, Regression)
- Secure file upload and download
- Version history tracking
- User authentication and role management
- Real-time updates
- Role-based access control





-
Authentication
- User registration with admin approval
- User role management (admin/user roles)
- Session management
- Secure file access control
-
User Management
- Admin approval for new users
- Admin role assignment/revocation
- User deletion functionality
- Role-based access control
-
Project Management
- Create and manage multiple projects
- Project-based organization
- Version control for each project
- Project icons support
-
Platform Support
- iOS, Apple TV application management with TestFlight integration
- Android, Android TV application management (.apk)
- Multi-platform version tracking
-
User Interface
- Modern, responsive design
- Real-time updates
- Search and filter capabilities
- Recent uploads tracking
- Version history
- Platform-specific button controls
-
File Management
- Secure file upload/download
- Automatic file organization
- Version-based file naming
- Test notes for each version
-
Role-Based Access Control
- Admin users: Full access to create, edit, upload, delete, and manage users
- Regular users: Download-only access
- Restricted access to admin panels based on user role
- Platform-specific controls (Edit, Download, Delete buttons)
- Clone the repository and navigate to the directory:
git clone https://github.com/erdncyz/mercury-app-center.git
cd mercury-app-center
- Install required dependencies:
npm install
npm install dotenv
- Create required directories:
mkdir -p uploads/icons uploads/projects data
chmod 755 uploads
If you encounter any permission issues, run the following commands:
# First, navigate to the project directory
cd /path/to/mercury-app-center
# Remove existing uploads and data directories
rm -rf uploads data
# Create new directories and set permissions
mkdir -p uploads/projects uploads/icons data
chmod -R 777 uploads data
# Set ownership of all project files to current user
sudo chown -R $USER:$USER .
# Create projects.json file
echo '{"projects":[]}' > data/projects.json
chmod 666 data/projects.json
# Create users.json file with admin user
echo '{"users":[{"id":"1","username":"admin","password":"admin","email":"[email protected]","role":"admin","approved":true,"created":"2023-01-01T00:00:00.000Z"}]}' > data/users.json
chmod 666 data/users.json
- Start the server:
node server.js
Server Configuration:
- Default port: 3000 (configurable via PORT environment variable)
- Session secret: Update in session middleware configuration
- CORS settings: Configure allowed origins as needed
-
Access the application at
http://localhost:3000
-
Authentication:
- Default admin: username: admin, password: admin
- User registration with admin approval
- Role-based access (admin vs regular users)
- Session-based authentication
-
User Management (Admin Only):
- Approve/reject new user registrations
- Grant/revoke admin privileges
- Delete users (except primary admin)
- View all users and their status
-
Project Management:
- Create new projects (admin only)
- Upload application versions (admin only)
- Download application versions (all users)
- Edit version information (admin only)
- Delete projects or versions (admin only)
-
Version Control:
- Upload new versions (admin only)
- Edit version details (admin only)
- Add version notes
- Track version history
- Download specific versions (all users)
-
Platform-Specific Features:
- iOS and Apple TV: TestFlight integration with instructions
- Android and Android TV: Direct APK downloads
- Platform-specific button visibility (Edit button only for admin users)
mercury-app-center/
├── public/ # Static files
│ ├── index.html # Main application
│ └── styles.css # Application styles
├── uploads/ # Upload directory
│ ├── icons/ # Project icons
│ └── projects/ # Application files
├── data/ # Data storage
│ ├── projects.json # Project metadata
│ └── users.json # User accounts
├── server.js # Server implementation
├── config.js # Configuration settings
├── setup.js # Setup utilities
├── package.json # Project dependencies
└── README.md # Documentation
-
iOS Applications
- TestFlight URLs
-
Android Applications
.apk
(Android Package)
-
TV Applications
- Apple TV: TestFlight URLs
- Android TV: APK files
-
Server Requirements
- Node.js (v14 or higher)
- npm (v6 or higher)
- Sufficient disk space for uploads
-
Client Requirements
- Modern web browser
- Network access to server
- Upload/download permissions
- Role-based authentication and authorization
- Session-based access control
- Secure file upload/download
- Input validation and sanitization
- Admin-only access for critical operations
- Clone the repository
- Install dependencies
- Create necessary directories
- Start development server
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please create an issue in the repository.
- Ensure proper file permissions for the uploads directory
- Regular backup of projects.json and users.json is recommended
- Monitor disk space for uploads directory
- Admin users have exclusive access to Edit, Delete, and Upload functions