This repository provides a self-hosted version of CodePush, a service for managing updates to React Native applications. It includes both the CodePush API and Azurite (a local Azure Storage emulator) in a single containerized setup.
For reference, visit the official CodePush Server repository: Microsoft CodePush Server.
A Dockerfile
is provided in the root directory of the repository, which installs both the CodePush API and Azurite in a single container.
To launch the codepush_api_plus_azurite
container, follow these steps:
-
Connect to the Server: Use AWS Session Manager or SSH:
ssh ubuntu@<EC2_PUBLIC_IP>
-
Navigate to the Project Directory:
cd /home/ubuntu/codepush_server
-
Pull the Latest Code (If Changes Exist):
git pull
-
Start the Container:
docker-compose -f docker-compose.yaml up --no-deps --build -d
-
Live Logs:
docker logs -f codepush_api_plus_azurite
-
Recent Logs (e.g., past 1 minute):
docker logs -f codepush_api_plus_azurite --since 1m
The CodePush service is hosted on an AWS EC2 instance with the following details:
- Private IP:
XX.XX.XX.XX
- Public IP:
XX.XX.XX.XX
All API and storage services are reverse-proxied through Nginx and publicly accessible via the following domains:
Service | URL |
---|---|
CodePush API | https://codepush.example.com |
Blob Storage | https://codepush.example.com/blob |
Queue Storage | https://codepush.example.com/queue |
Table Storage | https://codepush.example.com/table |
This setup ensures a seamless experience for hosting a self-managed CodePush service. With proper containerization and reverse proxy configurations, updates are efficiently managed and delivered to mobile applications.
Maintainer: Sajjad Talib -- DevOps Engineer -- sajjadtalib29@gmail.com