Skip to content

transcental/cdn

Repository files navigation

TCDN - Transcental Content Delivery Network

A lightweight simple CDN to serve static assets. Easy to selfhost, just create a Slack app using the provided manifest and use the Dockerfile to deploy on your service of choice and set the necessary environment variables looking at .env.sample.

Development

Prerequisites

  • Python (3.13 or later)
  • uv
  • A Slack workspace where you have permissions to install apps

Setting up the Slack App

  1. Go to https://api.slack.com/apps and click "Create New App".
  2. Choose "From an app manifest" and select your workspace.
  3. Copy and paste the manifest in manifest.yml
  4. Review and create the app.
  5. In the "Basic Information" section, note down the App Id, Client Id, Client Secret, Signing Secret .
  6. Go to "OAuth & Permissions" and install the app to your workspace. Note down the "Bot User OAuth Token".

Setting up the Project

  1. Clone the repository:

    git clone https://github.com/transcental/cdn.git
    cd cdn
    
  2. Rename the app folder to your app. You should also update this in pyproject.toml and do a find and replace for app. to foldername..

  3. Install dependencies:

    uv sync
    source .venv/bin/activate # for bash/zsh
    source .venv/bin/activate.fish # for fish
    source .venv/bin/activate.csh # for csh
    source .venv/bin/activate.ps1 # for powershell
    
  4. Copy the .env.sample file to .env:

    cp .env.sample .env
    
  5. Edit the .env file and fill in the values.

Running the Application

  1. Start your tunneling tool and expose the local server. (Not needed in socket mode with SLACK_APP_TOKEN set)

    Note the HTTPS URL you get.

  2. Update your Slack app's request URLs:

    • Go to your Slack app's settings.
    • In "Event Subscriptions" and "Interactivity & Shortcuts", update the request URL to your HTTPS URL followed by /slack/events.
    • In "OAuth & Permissions", update Redirect URLs to your HTTPS URL followed by /slack/oauth_redirect.
  3. Start the application:

    app
    

Your Slack app should now be running and connected to your Slack workspace! If you're adding commands, your commands in development will be prefixed with /dev-COMMAND. When deploying your app, you must set the ENVIRONMENT env var to production.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published