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.
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!
- Connection Guide - Facebook & Instagram - OAuth setup for Facebook and Instagram
- Connection Guide - Google - OAuth setup for Google
- Connection Guide - Twitter - OAuth setup for Twitter
- Connection Guide - TikTok - OAuth setup for TikTok
- Connection Guide - LinkedIn - OAuth setup for LinkedIn
- LinkedIn Page Setup - Configure LinkedIn business pages
- Change Password CLI - Command-line password management
- Links - Useful resources and references
- Visit nodejs.org
- Download the LTS version (v18 or higher)
- Run the installer and follow the setup wizard
- Verify installation:
node --version npm --version
- Visit docker.com/products/docker-desktop
- Download Docker Desktop for your OS (Windows, Mac, or Linux)
- Run the installer and follow the setup wizard
- Verify installation:
docker --version docker-compose --version
- Open PowerShell as Administrator
- Run:
wsl --install - Restart your computer
- Set WSL 2 as default:
wsl --set-default-version 2
- Verify installation:
wsl --list --verbose
git clone https://github.com/sanjipun/SocialRing.git
cd SocialRingnpm install
# or
yarn installStart PostgreSQL in Docker:
bash start.shOr manually:
docker-compose up -d dbThe database will be available at localhost:5432.
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:
- Facebook & Instagram Setup
- Google OAuth Setup
- Twitter API Setup
- TikTok OAuth Setup
- LinkedIn OAuth Setup
For LinkedIn business page setup, see LinkedIn Page Setup Guide.
If the database is empty, initialize the schema:
npm run db:pushnpm run devThe application will be available at http://localhost:3000.
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
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run db:push- Push database schema
The project uses Drizzle ORM with PostgreSQL. Database schema is defined in src/db/schemas/.
For password management via CLI, see Change Password CLI Guide
-
Ensure Docker is running and PostgreSQL container is up:
docker-compose ps
-
Check if database is accessible:
psql postgresql://postgres:postgres@localhost:5432/socialring
If port 3000 is already in use, you can change it:
npm run dev -- -p 3001Make sure NEXTAUTH_URL in .env.local matches your application URL.
We welcome contributions! SocialRing is a free and open source project, and we'd love your help to make it better.
- Fork the Repository - Click the fork button on GitHub
- Create a Feature Branch -
git checkout -b feature/your-feature-name - Make Your Changes - Implement your feature or fix
- Commit Your Changes -
git commit -m "Add your commit message" - Push to Your Branch -
git push origin feature/your-feature-name - Open a Pull Request - Describe your changes and submit for review
- Follow the existing code style
- Write clear commit messages
- Test your changes before submitting
- Update documentation as needed
- Be respectful and constructive in discussions
- Bug fixes and improvements
- New social media platform support
- Feature development (Messaging, Post Scheduling, etc.)
- Documentation improvements
- UI/UX enhancements
- Performance optimizations
This project is free and open source. Check the LICENSE file for details.
If you have questions or need help, please open an issue on GitHub or check the documentation links above.