Skip to content
This repository was archived by the owner on May 18, 2026. It is now read-only.
swayam25Public archive

About

Aero makes listening to music feel light and breezy

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Latest commit

ย 

History

331 Commits

Folders and files

Repository files navigation

Aero

Aero

Aero makes listening to music feel light and breezy

Svelte Tailwind CSS Supabase Drizzle ORM

Important

This project is no longer maintained and has been archived.

Some integrations and dependencies may not work as expected.

๐Ÿ“ธ Preview

preview.mp4
Mobile Preview
mobile_preview.mp4
Rooms Preview
rooms_preview.mp4

๐Ÿ’ซ Prerequisites

Tool Type Version Purpose
Docker Required 20.10+ To deploy the app using containerization.
Git Required 2.50+ To clone the repository and manage version control.
Node.js Optional (Development) 24+ To run the app locally and contribute to the codebase.
Pnpm Optional (Development) 10.20+ To manage project dependencies efficiently.

๐Ÿš€ Production

  1. Clone the repository

    git clone https://github.com/swayam25/Aero aero
    cd aero
  2. Create an application at the Discord Developer Portal. New Application

  3. Create .env file from the provided .env.example and fill in the required environment variables.

    cp .env.example .env

Tip

Check environment variables section for details on the environment variables.

  1. Add redirect url at the Discord Developer Portal. Discord Developer Portal

  2. Push the database schema to Supabase.

    pnpm run db:push
  3. Navigate to Table Editor in Supabase Dashboard and enable RLS for all the tables.

  4. Navigate to Authentication > Policies in Supabase Dashboard and create policies for all the tables. Policies

  5. Navigate to Table Editor in Supabase Dashboard and enable Realtime for playlist, room & room_member table. Playlist Realtime

Note

Check the Supabase Docs for more information on enabling Realtime.

  1. Docker compose
    docker compose up -d

๐Ÿ›ธ Development

  1. Follow first 8 steps from the production section.

  2. Install dependencies

    pnpm i
  3. Start the development server

    pnpm run dev

๐Ÿ”‘ Environment Variables

Variable Type Description
PUBLIC_DISCORD_URL string Discord API base URI
DATABASE_URL string Supabase connection string
VITE_SUPABASE_URL string Supabase project URL
VITE_SUPABASE_KEY string Supabase API Key
JWT_SECRET string JWT secret
DISCORD_CLIENT_ID string Discord client ID
DISCORD_CLIENT_SECRET string Discord client secret
DISCORD_BOT_TOKEN string Discord bot token
SPOTIFY_CLIENT_ID string Spotify client ID
SPOTIFY_CLIENT_SECRET string Spotify client secret
DOMAIN string Your domain for the reverse proxy, also used as ORIGIN

๐Ÿ“š Getting database keys

  • Create a supabase project Supabase New Project

  • Get DATABASE_URL from Supabase. Click on the Connect Button button at the top bar. Supabase DB URL

  • Get VITE_SUPABASE_URL and VITE_SUPABASE_KEY from Supabase API Settings.

    VITE_SUPABASE_URL VITE_SUPABASE_KEY
    Supabase API Supabase Publishable Key

๐Ÿ”ฎ Getting Discord OAuth keys

  • Get DISCORD_CLIENT_ID and DISCORD_CLIENT_SECRET from the Discord Developer Portal. Client Info

  • Get DISCORD_BOT_TOKEN from the Discord Developer Portal. Bot Token

๐ŸŽท Getting Spotify API keys

  • Get SPOTIFY_CLIENT_ID and SPOTIFY_CLIENT_SECRET from the Spotify Developer Dashboard.
    • Create a new application and fill in the required details.
    • Set Redirect URI to http://localhost (we don't need it, but Spotify requires it to be set).
    • Select the API scopes required for the app. Spotify App
    • Copy the Client ID and Client Secret. Spotify Client Info

๐Ÿช‡ Other keys

  • Generate JWT_SECRET by running the following command.
    pnpm run gen-secret

๐ŸŒ Setting domain

  • Set DOMAIN to your domain name. The variable is required only in production.
    DOMAIN="https://<your-domain>.com"

Important

DOMAIN is the URL you will use to access the app. This dynamically sets ORIGIN during deployment and configures the Caddy server's domain (for the reverse proxy). Redirect URl for Production Ensure that the domain name matches the Redirect URL in the Discord Developer Portal (see step 4 of the production section).

Check the SvelteKit Docs for more information about the ORIGIN variable.

โค๏ธ Contributing

  • Things to keep in mind

    • Follow our commit message convention.
    • Write meaningful commit messages.
    • Keep the code clean and readable.
    • Make sure the app is working as expected.
  • Code Formatting

    • Run pnpm run format before committing your changes or use Prettier extension in your code editor.
    • Make sure to commit error free code. Run pnpm run check to check for any errors.
  • Check STYLES.md for the CSS style guide.

About

Aero makes listening to music feel light and breezy

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages