{"id":18725804,"url":"https://github.com/myselfakashagarwal/pweb","last_synced_at":"2026-04-29T23:31:47.367Z","repository":{"id":224042976,"uuid":"762233273","full_name":"myselfakashagarwal/pweb","owner":"myselfakashagarwal","description":"Three.js Portfolio website with containerised \u0026 continuous- dev , build  \u0026 delivery pipeline ","archived":false,"fork":false,"pushed_at":"2025-12-27T20:54:23.000Z","size":28528,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"new","last_synced_at":"2025-12-29T19:17:05.883Z","etag":null,"topics":["cicd","docker","jenkins","nginx","threejs"],"latest_commit_sha":null,"homepage":"http://akash.hackctl.com/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/myselfakashagarwal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-23T10:57:19.000Z","updated_at":"2025-12-27T20:54:26.000Z","dependencies_parsed_at":"2025-12-13T23:08:42.624Z","dependency_job_id":null,"html_url":"https://github.com/myselfakashagarwal/pweb","commit_stats":null,"previous_names":["myselfakashagarwal/3","myselfakashagarwal/pweb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/myselfakashagarwal/pweb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myselfakashagarwal%2Fpweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myselfakashagarwal%2Fpweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myselfakashagarwal%2Fpweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myselfakashagarwal%2Fpweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/myselfakashagarwal","download_url":"https://codeload.github.com/myselfakashagarwal/pweb/tar.gz/refs/heads/new","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myselfakashagarwal%2Fpweb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32448385,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"ssl_error","status_checked_at":"2026-04-29T22:10:49.234Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cicd","docker","jenkins","nginx","threejs"],"created_at":"2024-11-07T14:12:04.433Z","updated_at":"2026-04-29T23:31:47.361Z","avatar_url":"https://github.com/myselfakashagarwal.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg width=\"849\" alt=\"Screenshot 2024-05-27 at 5 56 37 PM\" src=\"https://github.com/myselfakashagarwal/pweb/assets/106314226/a2505e19-4b3b-40c3-aa4b-1e2228ad0831\"\u003e\n\n## About  \nA web development codebase integrated with a modularized CI/CD pipeline.\n\n## Components  \n- **Develop** – Dev codebase running via Docker Compose, mimicking production for development.  \n- **Build** – Jenkins with build and push jobs using Docker-in-Docker (DIND) to build and push artifacts.  \n- **Deploy** – Pulling the artifact and running it.  \n- **Update** – A background service that updates to newer versions automatically.\n\n### Develop  \nThe website is built using [Three.js](https://threejs.org/), a WebGL framework. For development purposes, Docker Compose is used to mount the codebase along with environment variables and configurations, providing features such as hot reload.\n\n### Build  \nJenkins and Docker are used together in a multi-stage build process. Jenkins jobs like `pweb_build` (which uses the host's Docker daemon to build the artifact) and `pweb_push` (which pushes the build to a defined registry) are mounted during the artifact build.\n\n### Deploy \u0026 Update  \nA cloud VM instance with Docker is kept running with two containers:\n- One for the deployable build created in the build phase.  \n- The other for **Watchtower**, which handles automatic deployments. It monitors the registry and pulls new builds (on push), replacing the old versions with the same configurations and performing graceful shutdowns.\n\n## Working  \nThe entire pipeline is abstracted in `pweb.yml`, a Docker Compose file with multiple configured environments. Profiles are defined to spawn different environments as needed—such as `development` for local development, `build` for the build phase, and `deploy` and `update` for deployment on the cloud.\n\n## Use\n(assumed user in present inside the cloned repo)\n\nTo spawn the environment ANY \u003csyntax\u003e\n```bash\ndocker-compose -f pweb.yml --profile ${DESIRED-ENV} up\n```\n\nTo spawn the environment for development \u003ccommand\u003e\n```bash\ndocker-compose -f pweb.yml --profile development up\n```\n\nTo spawn the environment for creatinfg and pushing builds \u003ccommand\u003e\n```bash\ndocker-compose -f pweb.yml --profile build up\n```\n\nTo spawn complete pipeline \u003ccommand\u003e\n```\ndocker-compose -f pweb.yml --profile pweb up\n```\n\n\u003chr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyselfakashagarwal%2Fpweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmyselfakashagarwal%2Fpweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyselfakashagarwal%2Fpweb/lists"}