Skip to content

sanjipun/socialring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SocialRing

A Free and Open Source Social Media Management Platform

⚠️ Disclaimer: This project has not been tested for production use. Currently, only posting through the app is fully built. Messaging and Post Scheduling features are coming soon.

Supported Platforms

Currently, SocialRing supports posting to the following platforms:

  • Facebook - Post to Facebook pages
  • Instagram - Post to Instagram business accounts
  • LinkedIn - Post to LinkedIn personal and business profiles
  • TikTok - Post to TikTok accounts
  • X (Twitter) - Post to X/Twitter accounts

More platforms coming soon!

Quick Links

Prerequisites Installation

1. Download & Install Node.js

  1. Visit nodejs.org
  2. Download the LTS version (v18 or higher)
  3. Run the installer and follow the setup wizard
  4. Verify installation:
    node --version
    npm --version

2. Download & Install Docker

  1. Visit docker.com/products/docker-desktop
  2. Download Docker Desktop for your OS (Windows, Mac, or Linux)
  3. Run the installer and follow the setup wizard
  4. Verify installation:
    docker --version
    docker-compose --version

3. For Windows Users: Install WSL (Windows Subsystem for Linux)

  1. Open PowerShell as Administrator
  2. Run:
    wsl --install
  3. Restart your computer
  4. Set WSL 2 as default:
    wsl --set-default-version 2
  5. Verify installation:
    wsl --list --verbose

Getting Started

1. Clone the Repository

git clone https://github.com/sanjipun/SocialRing.git
cd SocialRing

2. Install Dependencies

npm install
# or
yarn install

3. Start the Database

Start PostgreSQL in Docker:

bash start.sh

Or manually:

docker-compose up -d db

The database will be available at localhost:5432.

3. Set Up Environment Variables

Create a .env.local file in the root directory with your OAuth credentials:

NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-secret-key-here

# Database
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/socialring
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=socialring

# NextAuth.js
AUTH_SECRET==
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_TRUST_HOST=true
TIKTOK_REDIRECT_URL=https://redirectmeto.com/

# OAuth Providers
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

For detailed OAuth setup instructions for each provider, see:

For LinkedIn business page setup, see LinkedIn Page Setup Guide.

4. Initialize the Database

If the database is empty, initialize the schema:

npm run db:push

5. Start the Development Server

npm run dev

The application will be available at http://localhost:3000.

Project Structure

src/
├── app/              # Next.js app directory
│   ├── api/         # API routes (OAuth, data endpoints)
│   ├── auth/        # Authentication pages
│   └── dashboard/   # Main application pages
├── components/      # React components
├── db/              # Database configuration
├── lib/             # Utility functions and libraries
└── types/           # TypeScript types

Development

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint
  • npm run db:push - Push database schema

Database Management

The project uses Drizzle ORM with PostgreSQL. Database schema is defined in src/db/schemas/.

User Management

For password management via CLI, see Change Password CLI Guide

Troubleshooting

Database Connection Issues

  1. Ensure Docker is running and PostgreSQL container is up:

    docker-compose ps
  2. Check if database is accessible:

    psql postgresql://postgres:postgres@localhost:5432/socialring

Port Already in Use

If port 3000 is already in use, you can change it:

npm run dev -- -p 3001

OAuth Redirect Issues

Make sure NEXTAUTH_URL in .env.local matches your application URL.

Contributing

We welcome contributions! SocialRing is a free and open source project, and we'd love your help to make it better.

How to Contribute

  1. Fork the Repository - Click the fork button on GitHub
  2. Create a Feature Branch - git checkout -b feature/your-feature-name
  3. Make Your Changes - Implement your feature or fix
  4. Commit Your Changes - git commit -m "Add your commit message"
  5. Push to Your Branch - git push origin feature/your-feature-name
  6. Open a Pull Request - Describe your changes and submit for review

Development Guidelines

  • Follow the existing code style
  • Write clear commit messages
  • Test your changes before submitting
  • Update documentation as needed
  • Be respectful and constructive in discussions

Areas to Contribute

  • Bug fixes and improvements
  • New social media platform support
  • Feature development (Messaging, Post Scheduling, etc.)
  • Documentation improvements
  • UI/UX enhancements
  • Performance optimizations

License

This project is free and open source. Check the LICENSE file for details.

Support

If you have questions or need help, please open an issue on GitHub or check the documentation links above.

About

Social Ring - Free and Open Source Social Media Management Platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages