{"id":23494472,"url":"https://github.com/vernu/textbee","last_synced_at":"2025-05-14T21:04:45.272Z","repository":{"id":159250948,"uuid":"471472540","full_name":"vernu/textbee","owner":"vernu","description":"textbee.dev is an opensource and free sms-gatway for sending SMS messages through API or dashboard web interface.","archived":false,"fork":false,"pushed_at":"2025-04-07T05:23:19.000Z","size":3494,"stargazers_count":1197,"open_issues_count":12,"forks_count":140,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-13T17:46:46.611Z","etag":null,"topics":["foss","free","gateway","open-source","opensource","sms","sms-gateway"],"latest_commit_sha":null,"homepage":"https://textbee.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vernu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["vernu"],"patreon":"vernu","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":"textbee","custom":null}},"created_at":"2022-03-18T18:15:53.000Z","updated_at":"2025-04-13T14:31:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"fe748d60-420e-4c30-a9f5-aebdf39c0a70","html_url":"https://github.com/vernu/textbee","commit_stats":null,"previous_names":["vernu/textbee"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vernu%2Ftextbee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vernu%2Ftextbee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vernu%2Ftextbee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vernu%2Ftextbee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vernu","download_url":"https://codeload.github.com/vernu/textbee/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254227605,"owners_count":22035668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["foss","free","gateway","open-source","opensource","sms","sms-gateway"],"created_at":"2024-12-25T03:03:38.488Z","updated_at":"2025-05-14T21:04:45.215Z","avatar_url":"https://github.com/vernu.png","language":"TypeScript","funding_links":["https://github.com/sponsors/vernu","https://patreon.com/vernu","https://polar.sh/textbee"],"categories":["TypeScript"],"sub_categories":[],"readme":"# TextBee - Android SMS Gateway\n\nTextBee is an open-source SMS gateway that enables users to send and receive SMS messages via a web dashboard or a REST API. Perfect for businesses, developers, and hobbyists who need a reliable and cost-effective way to automate SMS messaging.\n\n- **Technology stack**: React, Next.js, Node.js, NestJs, MongoDB, Android, Java\n- **Link**: [https://textbee.dev](https://textbee.dev/)\n\n![](https://ik.imagekit.io/vernu/textbee/texbee-landing-light.png?updatedAt=1687076964687)\n\n\n## Features\n\n- Send \u0026 receive SMS messages via API \u0026 dashboard\n- Use your own Android phone as an SMS gateway\n- REST API for easy integration with apps \u0026 services\n- Send Bulk SMS with CSV file\n- Multi-device support for higher SMS throughput\n- Secure API authentication with API keys\n- Webhook support\n- Self-hosting support for full control over your data\n\n\n\n\n## Getting Started\n\n1. Go to [textbee.dev](https://textbee.dev) and register or login with your account\n2. Install the app on your android phone from [dl.textbee.dev](https://dl.textbee.dev)\n3. Open the app and grant the permissions for SMS\n4. Go to [textbee.dev/dashboard](https://textbee.dev/dashboard) and click register device/ generate API Key\n5. Scan the QR code with the app or enter the API key manually\n6. You are ready to send SMS messages from the dashboard or from your application via the REST API\n\n**Code Snippet**: Few lines of code showing how to send an SMS message via the REST API\n\n```javascript\nconst API_KEY = 'YOUR_API_KEY';\nconst DEVICE_ID = 'YOUR_DEVICE_ID';\n\nawait axios.post(`https://api.textbee.dev/api/v1/gateway/devices/${DEVICE_ID}/send-sms`, {\n  recipients: [ '+251912345678' ],\n  message: 'Hello World!',\n}, {\n  headers: {\n    'x-api-key': API_KEY,\n  },\n});\n\n```\n\n**Code Snippet**: Curl command to send an SMS message via the REST API\n\n```bash\ncurl -X POST \"https://api.textbee.dev/api/v1/gateway/devices/YOUR_DEVICE_ID/send-sms\" \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"recipients\": [ \"+251912345678\" ],\n    \"message\": \"Hello World!\"\n  }'\n```\n\n### Receiving SMS Messages\n\nTo receive SMS messages, you can enable the feature from the mobile app. You can then fetch the received SMS messages via the REST API or view them in the dashboard. (Webhook notifications are coming soon)\n\n**Code Snippet**: Few lines of code showing how to fetch received SMS messages via the REST API\n\n```javascript\nconst API_KEY = 'YOUR_API_KEY';\nconst DEVICE_ID = 'YOUR_DEVICE_ID';\n\nawait axios.get(`https://api.textbee.dev/api/v1/gateway/devices/${DEVICE_ID}/get-received-sms`, {\n  headers: {\n    'x-api-key': API_KEY,\n  },\n});\n\n```\n\n**Code Snippet**: Curl command to fetch received SMS messages\n\n```bash\ncurl -X GET \"https://api.textbee.dev/api/v1/gateway/devices/YOUR_DEVICE_ID/get-received-sms\"\\\n  -H \"x-api-key: YOUR_API_KEY\"\n```\n\n## Self-Hosting\n\n### Setting Up Database\n\n1. **Install MongoDB on Your Server**: Follow the official MongoDB installation guide for your operating system.\n2. **Using MongoDB Atlas**: Alternatively, you can create a free database on MongoDB Atlas. Sign up at [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) and follow the instructions to set up your database.\n\n### Firebase Setup\n\n1. Create a Firebase project.\n2. Enable Firebase Cloud Messaging (FCM) in your Firebase project.\n3. Obtain the Firebase credentials for backend use and the Android app.\n\n### Building the Android App\n\n1. Clone the repository and navigate to the Android project directory.\n2. Update the `google-services.json` file with your Firebase project configuration.\n3. Update every occurrence of `textbee.dev` with your own domain in the project.\n4. Build the app using Android Studio or the command line:\n   ```bash\n   ./gradlew assembleRelease\n   ```\n\n### Building the Web\n\n1. Navigate to the `web` directory.\n2. Copy the `.env.example` file to `.env`:\n   ```bash\n   cp .env.example .env\n   ```\n3. Update the `.env` file with your own credentials.\n4. Install dependencies:\n   ```bash\n   pnpm install\n   ```\n5. Build the web application:\n   ```bash\n   pnpm build\n   ```\n\n### Building the API\n\n1. Navigate to the `api` directory.\n2. Copy the `.env.example` file to `.env`:\n   ```bash\n   cp .env.example .env\n   ```\n3. Update the `.env` file with your own credentials.\n4. Install dependencies:\n   ```bash\n   pnpm install\n   ```\n5. Build the API:\n   ```bash\n   pnpm build\n   ```\n\n### Hosting on a VPS\n\n1. Install `pnpm`, `pm2`, and `Caddy` on your VPS.\n2. Use `pm2` to manage your Node.js processes:\n   ```bash\n   pm2 start dist/main.js --name textbee-api\n   ```\n3. Configure `Caddy` to serve your web application and API. Example Caddyfile:\n   ```\n   textbee.dev {\n       reverse_proxy /api/* localhost:3000\n       reverse_proxy /* localhost:3001\n   }\n   ```\n4. Ensure your domain points to your VPS and Caddy is configured properly.\n\n### Dockerized env\n#### Requirements:   \n- Docker installed\n1. After setting up Firebase, update your `.env` in `web` \u0026\u0026 `api` folder.\n   ```bash\n   cd web \u0026\u0026 cp .env.example .env \\\n   \u0026\u0026 cd ../api \u0026\u0026 cp .env.example .env\n   ```\n2. Navigate to root folder and execute docker-compose.yml file.    \n   This will spin up `web` container, `api` container alongside with `MongoDB` and `MongoExpress`. `TextBee` database will be automatically created.\n   ```bash\n   docker compose up -d\n   ```\n   To stop the containers simply type\n   ```bash\n   docker compose down\n   ```   \n\n## Contributing\n\nContributions are welcome!\n\n1. [Fork](https://github.com/vernu/textbee/fork) the project.\n2. Create a feature or bugfix branch from `main` branch.\n3. Make sure your commit messages and PR comment summaries are descriptive.\n4. Create a pull request to the `main` branch.\n\n## Bug Reporting and Feature Requests\n\nPlease feel free to [create an issue](https://github.com/vernu/textbee/issues/new) in the repository for any bug reports or feature requests. Make sure to provide a detailed description of the issue or feature you are requesting and properly label whether it is a bug or a feature request.\n\nPlease note that if you discover any vulnerability or security issue, we kindly request that you refrain from creating a public issue. Instead, send an email detailing the vulnerability to contact@textbee.dev.\n\n## For support, feedback, and questions\nFeel free to reach out to us at contact@textbee.dev or [Join our Discord server](https://discord.gg/d7vyfBpWbQ)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvernu%2Ftextbee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvernu%2Ftextbee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvernu%2Ftextbee/lists"}