{"id":13462486,"url":"https://github.com/laragol/laragol","last_synced_at":"2025-03-25T01:32:15.498Z","repository":{"id":180284253,"uuid":"89766459","full_name":"laragol/laragol","owner":"laragol","description":"Laravel clone in go","archived":false,"fork":false,"pushed_at":"2017-09-08T23:00:12.000Z","size":1751,"stargazers_count":138,"open_issues_count":3,"forks_count":15,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-10-29T11:11:26.844Z","etag":null,"topics":["go","laravel"],"latest_commit_sha":null,"homepage":"","language":"Go","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/laragol.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}},"created_at":"2017-04-29T05:46:32.000Z","updated_at":"2024-07-09T09:50:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"c4651b9a-0090-48c3-80de-499b531eefe8","html_url":"https://github.com/laragol/laragol","commit_stats":null,"previous_names":["laragol/laragol"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laragol%2Flaragol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laragol%2Flaragol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laragol%2Flaragol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laragol%2Flaragol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laragol","download_url":"https://codeload.github.com/laragol/laragol/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245382177,"owners_count":20606165,"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":["go","laravel"],"created_at":"2024-07-31T12:00:49.347Z","updated_at":"2025-03-25T01:32:14.902Z","avatar_url":"https://github.com/laragol.png","language":"Go","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Laravel clone in go\n\nThis is an ongoing experiment to help me learn go by trying to clone the developer experience of Laravel or more accurate Lumen.\n\nI don't know if this is actually a good idea to build applications in this manner. But maybe is a way to present go to PHP or Rails developers.\n\n### Features\n\n* Live update on file change (makefile sugar) + [(cespare/reflex)](https://github.com/cespare/reflex)\n* Dependencies folder vendor (GOPATH to /vendor)\n* Http Server [(valyala/fasthttp)](https://github.com/valyala/fasthttp)\n* Routing [(qiangxue/fasthttp-routing)](https://github.com/qiangxue/fasthttp-routing)\n* ORM [(jinzhu/gorm)](https://github.com/jinzhu/gorm)\n* Migration (only folder like atm, looking for libraries)\n* Seeding (Basic)\n* Examples (User \u0026 Country CRUD)\n\n### Roadmap\n\n* Templating (valyala/quicktemplate)\n* Migration library\n* More Examples\n* Even More Examples\n* Auth\n* Config\n* Commands\n* Package Management [(Masterminds/glide)](https://github.com/Masterminds/glide)\n\n### Folder structure\n\n```bash\n$ tree src\n.\n├── app\n│   ├── Helpers\n│   │   └── DB.go\n│   ├── Http\n│   │   ├── Controllers\n│   │   │   ├── CountryController.go\n│   │   │   └── UserController.go\n│   │   └── routes.go\n│   └── Models\n│       ├── Country.go\n│       └── User.go\n├── database\n│   ├── migrations\n│   │   ├── 000001_create_countries_table.go\n│   │   ├── 000002_create_users_table.go\n│   │   └── migrations.go\n│   └── seeds\n│       ├── CountriesTableSeeder.go\n│       ├── UsersTableSeeder.go\n│       └── seeds.go\n└── main.go\n\n8 directories, 13 files\n```\n\n## Docker\n\n```bash\ndocker-compose up\n```\n\nServer is listening on http://127.0.0.1:8080/\n\n### Run migrations\n\n```bash\ndocker-compose run api /code/bin/main migrate\n```\n\n### Run seeding\n\n```bash\ndocker-compose run api /code/bin/main db:seed\n```\n\nNow you can see it in acion at:\n\nhttp://127.0.0.1:8080/api/countries\n\nhttp://127.0.0.1:8080/api/users\n\n## Without Docker\n\nWithout docker yo need to install go and have MySQL up and running. Create a database \"go_api\" and root user with password \"123456\" or modify the file src/app/Helpers/DB.go with your MySQL credentials.\n\n```bash\nmake install\nmake build-dev\n./bin/main migrate\n./bin/main db:seed\nmake dev #linux\nmake dev-mac #mac\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaragol%2Flaragol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaragol%2Flaragol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaragol%2Flaragol/lists"}