{"id":19591753,"url":"https://github.com/svenvc/minimal-pharo-server-tools","last_synced_at":"2025-10-07T16:32:25.614Z","repository":{"id":146208596,"uuid":"224823989","full_name":"svenvc/minimal-pharo-server-tools","owner":"svenvc","description":"Scripts to install, build and deploy headless Pharo server applications using command line tools ","archived":false,"fork":false,"pushed_at":"2020-05-29T12:24:59.000Z","size":13,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-05T00:41:17.679Z","etag":null,"topics":["pharo","server-side","smalltalk"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/svenvc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2019-11-29T09:43:55.000Z","updated_at":"2024-08-17T18:38:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"0db6bbb4-1013-4460-aa03-ea7ec24ebf6e","html_url":"https://github.com/svenvc/minimal-pharo-server-tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenvc%2Fminimal-pharo-server-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenvc%2Fminimal-pharo-server-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenvc%2Fminimal-pharo-server-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenvc%2Fminimal-pharo-server-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/svenvc","download_url":"https://codeload.github.com/svenvc/minimal-pharo-server-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251154521,"owners_count":21544513,"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":["pharo","server-side","smalltalk"],"created_at":"2024-11-11T08:30:40.629Z","updated_at":"2025-10-07T16:32:20.592Z","avatar_url":"https://github.com/svenvc.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Minimal Pharo Server Tools\n\nMinimal Pharo Server Tools is a collection of scripts to install, build and deploy \nheadless Pharo server applications using command line tools.\n\nWe're assuming you use Pharo 7 or 8 and want to deploy to Ubuntu GNU Linux.\n\nFurthermore, we assuyme your code is loadable from a single baseline from a git repository.\n\nThere is one example, pharo-http-server, included.\n\n````\n$ git clone https://github.com/svenvc/minimal-pharo-server-tools.git \n$ ~/minimal-pharo-server-tools/install.sh\n$ cd pharo \u0026\u0026 ~/pharo/build.sh\n$ ~/minimal-pharo-server-tools/run/pharo-http-server/deploy.sh\n$ sudo systemctl start pharo-http-server\n````\n\nNow the service named pharo-http-service is running. Log files are written in ~/pharo-http-service per day. \nYou can locally connect to the running image with a REPL and check metrics.\n\n````\n$ cd pharo-http-service\n$ sudo systemctl status pharo-http-server\n$ ./repl.sh\n$ ./pharo-ctl.sh run-pharo-http-server pid pharo-production\n$ curl http://localhost:8080/random/64\n$ curl http://localhost:42002/metrics\n$ ls *.log\n````\n\nWhenever you commit new code and to deploy, you first do a new build, then copy the new \npharo-production .image and .changes over and restart your service using systemctl.\n\n````\n$ cd pharo \u0026\u0026 ./build.sh\n$ cp ~/pharo/pharo-production.* ~/pharo-http-server\n$ sudo systemctl restart pharo-http-server\n````\n\nFor your own needs, you will have to edit some variables in the build script.\nFor each of your deployed services, copy/rename/edit a run/my-service directory.\nLet's assume you want to add a configuration for a service called foobar-server.\n\n- create a subdirectory run/foobar-server\n- copy repl.sh unchanged (unless you want to use a different port)\n- copy deploy.sh and change SERVICE to foobar-server\n- copy run-pharo-http-server.st to run-foobar-server.st and edit it start your service instead of ZnServer\n- copy pharo-http-server.service to foobar-server.service and edit it so that foobar-server is used as top level directory instead of pharo-http-server and that run-foobar-server is used instead of run-pharo-http-server\n\nThat should be all.\n\nDon't forget to add https://github.com/svenvc/NeoConsole as a dependency to your project's baseline.\n\nThis is a newer version of https://github.com/svenvc/pharo-server-tools\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvenvc%2Fminimal-pharo-server-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvenvc%2Fminimal-pharo-server-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvenvc%2Fminimal-pharo-server-tools/lists"}