|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Babun||8,695||4 years ago||409||Shell|
|Babun - a Windows shell you will love!|
|Gitprep||880||5 months ago||37||Perl|
|Portable GitHub system into your own server|
|A simple private bower registry|
|Wasm Git||458||3 months ago||9||September 25, 2022||10||other||C|
|GIT for nodejs and the browser using https://libgit2.org compiled to WebAssembly with https://emscripten.org|
|:octocat: semantic-release plugin to publish a GitHub release and comment on released Pull Requests/Issues|
|Love Gfw||312||3 years ago||2||mit||Shell|
|🔥以社会主义核心价值观为指导思想，实现 Linux 和 MacOS 设备的全局智能分流|
|Next Editor||305||a year ago||41||TypeScript|
|Standalone Git Editor on Browser|
|Git Resource||182||7 days ago||112||apache-2.0||Shell|
|tracks commits in a branch of a Git repository|
|Pool||166||8 years ago||26||other||Ruby|
|The simplest proxy service to access your Dockerized webapps by Git commit-id.|
|Fgit||120||10 months ago||3||August 07, 2022||2||gpl-3.0||Go|
The simplest proxy service to access your Dockerized web application by Git commit-id, branch or tag.
You can build and run your web application as a Docker container just to access
http://<git-commit-id, branch or tag>.pool.dev for example.
Vagrantfileis configured to have docker so you don't have to care about it if you try to run on Vagrant
Dockerfileon root of the repository
Dockerfileis for a container which the application is going to be run
You can run pool on your local Vagrant environment also.
It needs to install vagrant dns plugin before
vagrant up. Just run after vagrant was installed:
vagrant plugin install vagrant-dns vagrant dns --install vagrant dns --start
You can give some configuration to
Currently we some configurations for
poolkills containers if the number of containers are over than this number automatically
You can rewrite Vagrantfile like:
# If you'd like to enable github integration, uncomment below s.args << "--github-bot" # Set your repository for previewing by pool s.args << "https://github.com/mookjp/flaskapp.git" # Set the maximum number of containers runnning at the same time s.args << "5" # Set POOL_BASE_DOMAIN s.args << [pool_hostname, pool_tld].join(".")
To watch the web application on
pool, you can do it just to access
http://<git-commit-id>.pool.dev with your browser.
In the default setting,
pool is configured for the web application maintained in the mookjp/flaskapp repository.
You can see the flask app (which just outputs 'hello world') just visiting
Following is an example to install
pool to Amazon Linux.
pool on your Amazon Linux, use following userdata. This example is for Amazon Linux AMI
#!/bin/sh # Setup script for pool # NOTE: Run it as root yum install -y git yum install -y docker # Install latest Docker service docker stop curl https://get.docker.com/builds/Linux/x86_64/docker-latest -o /tmp/docker chmod +x /tmp/docker cp /tmp/docker /usr/bin/docker service docker start # Download pool then run pool container git clone https://github.com/mookjp/pool.git /app # You can create `pool` image and run to execute `init_host_server` script. # It gets 3 parameters: # 1) Git repository URL # 2) Maximum number of containers of web application # 3) Hostname /app/scripts/init_host_server "https://github.com/mookjp/flaskapp.git" 5 "dev.prevs.io"
pool/scripts/init_host_server is a small util script to run
pool container. It gets 3 parameters:
POOL_BASE_DOMAINso that you can set configuration related to hostname inside your container
You may want to upload a SSH private key to pool container in case your git repository is hidden from public access.
Then you can place id_rsa at
/app/docker/pool/keys/id_rsa in the server where pool is installed.
And id_rsa will be uploaded to
/app/keys/id_rsa on the pool container which is going to be used to clone your application repository.
[email protected] ~ $ cat<<'EOS'>/app/docker/pool/keys/id_rsa > -----BEGIN RSA PRIVATE KEY----- > .......... > -----END RSA PRIVATE KEY----- > EOS [email protected] ~ $ sudo /app/scripts/init_host_server [email protected] ~ $ sudo docker exec -it pool bash [pool container]# ls -l /app/keys/id_rsa
The part of proxy in
pool accesses your Git repository with commit id given as
hostname then checkout source with Dockerfile.
Dockerfile should be on the root of the repository.
After checkout files, the container will be built by the Dockerfile
and port is linked with front automatically. All you can do is just to access
by URL like
http://<git-commit-id, branch or tag>.pool.dev.
pool consists of two modules; proxy hook and container builder.
handlers/hook.rb handles HTTP request as proxy. This is a hook script of
It forwards port which Docker container was assigned by Git-commit-id.
If there's no container which corresponds to Git-commit-id,
build_server works to
build Docker image then runs it.
build_server sends build log so that you can confirm the status of build process
If there is another proccess to build and run container,
pool locks to run other
process and waits until lock is over.