Skip to content
/ my-sky Public

Schedule posts to your Bluesky account with Cloudflare workers

License

Notifications You must be signed in to change notification settings

apvarun/my-sky

Repository files navigation

My Sky

License: MIT GitHub stars GitHub issues Deploy to Cloudflare Workers

Overview

My Sky is a lightweight Cloudflare Workers-based application that allows you to schedule posts to your Bluesky account effortlessly. Perfect for content creators and social media managers who want to plan their social media content in advance.

Features

  • Bluesky Post Scheduling: Schedule multiple posts to your Bluesky account
  • Hourly Time Slots: Time selection is limited to hourly intervals to optimize worker execution and reduce unnecessary runs
  • Free Cloudflare Workers Deployment: Utilize the free tier for hosting your scheduler
  • Simple and Lightweight: Minimal setup and easy to use

Getting Started

Prerequisites

  • Node.js (v20.x or later)
  • Package Manager (pnpm)
  • Cloudflare Workers account

Installation

  1. Clone the repository
git clone https://github.com/apvarun/my-sky.git
cd my-sky
  1. Copy environment variables template
cp .dev.vars.example .dev.vars
  1. Configure your .dev.vars file with the following environment variables:
    • BSKY_USERNAME: Your Bluesky account identifier
    • BSKY_PASSWORD: Your Bluesky account password
    • AUTH_PASSWORD: A secure password for authentication
    • JWT_SECRET: A secret key used for generating JWT tokens (You can create a secret using openssl rand -hex 32 or from JwtSecret website)

Note: When deploying, these variables should also be configured in your Cloudflare worker dashboard.

  1. Install dependencies
npm install
  1. Run the development server
npm run dev
  1. Deploy the application to Cloudflare Workers. You might need to login to your Cloudflare account if you haven't already.
npm run deploy

Configuration

Environment Variables

Ensure you have configured the .dev.vars file with the necessary credentials and settings. The file is git-ignored to protect your sensitive information.

Project Structure

my-sky/
├── src/
│   ├── db/
│   ├── layout/
│   ├── pages/
│   └── utils/
├── migrations/
├── .dev.vars
├── drizzle.config.ts
├── package.json
└── wrangler.toml

Contributing

We welcome contributions!

Ways to Contribute

  • Report bugs
  • Suggest enhancements
  • Submit pull requests
  • Improve documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Cloudflare Workers
  • Bluesky Social

Support

If you encounter any problems, please open an issue on GitHub.


Buy Me A Coffee