{"id":22281783,"url":"https://github.com/theforeman/foreman_fog_proxmox","last_synced_at":"2025-10-20T12:37:34.000Z","repository":{"id":32692943,"uuid":"131305286","full_name":"theforeman/foreman_fog_proxmox","owner":"theforeman","description":"Foreman plugin to add Proxmox compute resource based on fog-proxmox gem","archived":false,"fork":false,"pushed_at":"2024-04-22T06:57:51.000Z","size":11075,"stargazers_count":98,"open_issues_count":13,"forks_count":29,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-05-02T04:55:56.328Z","etag":null,"topics":["cloud","cloud-computing","fog","fog-computing","fog-proxmox","foreman","foreman-plugins","foreman-proxmox","hacktoberfest","proxmox","proxmox-ve","theforeman"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theforeman.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["tristanrobert"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://paypal.me/TristanRobert"]}},"created_at":"2018-04-27T14:13:41.000Z","updated_at":"2024-06-18T09:46:37.147Z","dependencies_parsed_at":"2023-09-24T01:32:26.235Z","dependency_job_id":"727fe612-b143-4568-af3f-d5c3f2490f46","html_url":"https://github.com/theforeman/foreman_fog_proxmox","commit_stats":{"total_commits":578,"total_committers":32,"mean_commits":18.0625,"dds":"0.31314878892733566","last_synced_commit":"eb652d7f7911735699a29821f8ed6a14aee0812b"},"previous_names":["tristanrobert/foreman_proxmox"],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theforeman%2Fforeman_fog_proxmox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theforeman%2Fforeman_fog_proxmox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theforeman%2Fforeman_fog_proxmox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theforeman%2Fforeman_fog_proxmox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theforeman","download_url":"https://codeload.github.com/theforeman/foreman_fog_proxmox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294541,"owners_count":20915340,"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":["cloud","cloud-computing","fog","fog-computing","fog-proxmox","foreman","foreman-plugins","foreman-proxmox","hacktoberfest","proxmox","proxmox-ve","theforeman"],"created_at":"2024-12-03T16:22:05.539Z","updated_at":"2025-10-20T12:37:28.959Z","avatar_url":"https://github.com/theforeman.png","language":"Ruby","funding_links":["https://github.com/sponsors/tristanrobert","https://paypal.me/TristanRobert","https://github.com/sponsors/tristanrobert)!"],"categories":[],"sub_categories":[],"readme":"![ForemanFogProxmox](.github/images/foremanproxmox.png)\n\n![CI](https://github.com/theforeman/foreman_fog_proxmox/workflows/CI/badge.svg)\n[![Maintainability](https://api.codeclimate.com/v1/badges/922162c278e0fa9207ba/maintainability)](https://codeclimate.com/github/theforeman/foreman_fog_proxmox/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/a6446cf7b1cf09b83de6/test_coverage)](https://codeclimate.com/github/theforeman/foreman_fog_proxmox/test_coverage)\n[![Gem Version](https://badge.fury.io/rb/foreman_fog_proxmox.svg)](https://badge.fury.io/rb/foreman_fog_proxmox)\n\n# ForemanFogProxmox\n\n[Foreman](http://theforeman.org/) plugin that adds [Proxmox](https://www.proxmox.com/en/proxmox-ve) compute resource: managing virtual machines and containers using the [fog-proxmox](https://github.com/fog/fog-proxmox) module.\n\nIt is intended to satisfy this [feature](http://projects.theforeman.org/issues/2186).\n\nIf you like it and need more features you can [contribute](.github/CONTRIBUTING.md) or simply [support](.github/SUPPORT.md) it:\n\n## Support\n\nYou can support the plugin development via the following methods:\n\n* [Donate by PayPal](https://paypal.me/TristanRobert)\n* [Sponsor by Github](https://github.com/sponsors/tristanrobert)\n\n## Compatibility versions\n\n|Fog-proxmox|Proxmox|Foreman-fog-proxmox|Foreman|Ruby|\n|--|--|--|--|--|\n|\u003c0.6|\u003c5.3|\u003c0.6|\u003c=1.20|\u003e=2.3|\n|=0.6|\u003c5.4|=0.6|=1.21|\u003e=2.3|\n|\u003c=0.8 |\u003c6.0|\u003e=0.7|\u003e=1.22|\u003e=2.3|\n|\u003c0.9 |\u003c6.0|=0.9|\u003e=1.22|\u003e=2.3|\n|\u003e=0.9 |\u003e=5.4|\u003e=0.9.1|\u003e=1.22|\u003e=2.3|\n|\u003e=0.10 |\u003e=5.4|\u003e=0.9.4|\u003e=1.22|\u003e=2.5|\n|\u003e=0.11 |\u003e=5.4|\u003e=0.10|\u003e=1.22|\u003e=2.5|\n|\u003e=0.12 |\u003e=6.1|\u003e=0.11|\u003e=2.0|\u003e=2.5|\n|\u003e=0.14 |\u003e=6.2|=0.13.0|\u003e=2.4|\u003e=2.7|\n|\u003e=0.14 |\u003e=6.2|\u003e=0.13.1|\u003e=2.3|\u003e=2.5|\n|\u003e=0.14 |\u003e=6.2,\u003c8.0|\u003e=0.14.0|\u003e=2.5|\u003e=2.5|\n\n## Installation\n\n### From OS packages (required)\n\nPlease see the Foreman manual for complete instructions:\n\n* [Foreman: How to Install a Plugin from package](https://theforeman.org/plugins/#2.Installation)\n\n[Install from package](https://theforeman.org/plugins/#2.2Packageinstallation) is the easiest way to install the plugin. Choose the latest release plugins repository. If you don't find it in the same foreman release repository, get it from the `nightly` repository.\n\nThen you can install it with the package manager, in Debian/Ubuntu:\n\n```shell\nsudo apt-get install ruby-foreman-fog-proxmox\n```\n\nand in Fedora/Redhat Linux:\n\n```shell\nsudo dnf install rubygem-foreman_fog_proxmox\n```\n\nRedhat, CentOS or Fedora users should also [setup Selinux](https://projects.theforeman.org/projects/foreman/wiki/SELinux) to allow foreman and all its plugins to work.\n\n### From gem\n\nSee complete details in [plugin installation from gem](https://theforeman.org/plugins/#2.3AdvancedInstallationfromGems)\n\nHere is a Debian sample:\n\n* Install foreman [from OS packages](https://theforeman.org/manuals/latest/index.html#3.3InstallFromPackages):\n\n```shell\nsudo apt install -y foreman foreman-pgsql\n```\n\n* Use only foreman user (**not root!**) `sudo -u foreman ...`\n* In /usr/share/foreman/bundler.d directory, add Gemfile.local.rb file and add this line in it:\n\n```shell\necho \"gem 'foreman_fog_proxmox'\" | sudo -u foreman tee /usr/share/foreman/bundler.d/Gemfile.local.rb\n```\n\n* Install the gem plugin:\n\n```shell\nsudo -u foreman /usr/bin/foreman-ruby /usr/bin/bundle install\n```\n\n* Precompile plugin assets:\n\nYou need [nodejs](https://nodejs.org/en/download/package-manager/) installed in order to use foreman-assets package.\n\n```shell\n/usr/bin/foreman-ruby /usr/bin/bundle exec bin/rake plugin:assets:precompile[foreman_fog_proxmox]\n```\n\n* Compile plugin translations if (french) needed :\n\n```shell\n/usr/bin/foreman-ruby /usr/bin/bundle exec bin/rake plugin:gettext[foreman_fog_proxmox]\n```\n\n* Complete installation of foreman 1.22 with foreman-installer:\n\n```shell\nsudo apt install -y foreman-installer\nsudo foreman-installer\n```\n\nIf you don't want to have HTTP 503 errors when apt is trying to install puppetserver, then add this before launching foreman-installer:\n\n```shell\necho 'Acquire::http::User-agent \"Mozilla/5.0 (Linux)\";' | sudo tee /etc/apt/apt.conf.d/96useragent\n```\n\nSee complete details in [plugin installation from gem](https://theforeman.org/plugins/#2.3.2Debiandistributions)\n\nThen you can check plugin installation after login into your new foreman server seeing the about foreman page:\n\n![About resources](.github/images/about_resources.png)\n![About greffon](.github/images/about_greffon.png)\n\n## Usage\n\n* [Compute resource](.github/compute_resource.md)\n* [Manage hosts](.github/hosts.md)\n\n## Development\n\n### Dev prerequisites\n\n\u003e See [Foreman dev setup](https://github.com/theforeman/foreman/blob/develop/developer_docs/foreman_dev_setup.asciidoc)\n\n* You need a Proxmox VE 6.2+ server running.\n* You need ruby 2.7. You can install it with [asdf-vm](https://asdf-vm.com).\n* You also need nodejs 14 in your dev machine to run webpack-dev-server. You can install it with [asdf-vm](https://asdf-vm.com).\n\n### Platform\n\n* Fork this github repo.\n* Clone it on your local machine\n* Install foreman v2.5+ on your machine:\n\n```shell\ngit clone https://github.com/theforeman/foreman -b develop\n```\n\n* Create a Gemfile.local.rb file in foreman/bundler.d/\n* Add this line:\n\n```ruby\ngem 'foreman_fog_proxmox', :path =\u003e '../../theforeman/foreman_fog_proxmox'\ngem 'fog-proxmox', :path =\u003e '../../fog/fog-proxmox' # optional if you need to modify fog-proxmox code too\ngem 'ruby-debug-ide' # dev\ngem 'debase' # dev\ngem 'solargraph' # dev\ngem 'simplecov' # test\n```\n\n* In foreman directory, install dependencies:\n\n```shell\ngem install bundler\n# prerequisites libraries on Ubuntu OS:\n# sudo apt install postgresql-client-13 libpq-dev libsystemd-dev\nbundle config set without 'libvirt ovirt'\nbundle install\n```\n\n```shell\nnpm install\n```\n\n* Configure foreman settings:\n\n```shell\ncp config/settings.yaml.test config/settings.yaml\n```\n\nadd these lines to config/settings.yml:\n\n```yaml\n    :webpack_dev_server: true\n    :destroy_vm_on_host_delete: true # optional, could be set on UI\n    :logging:\n      :level: debug\n    :loggers:\n      :sql:\n       :enabled: false\n```\n\n* SQLite is no more default rails dev or test database, instead add:\n\n```shell\nDATABASE_URL=nulldb://nohost\n```\n\n* (Optional) test and dev with postgresql database:\n\n```shell\ncp config/database.yml.example config/database.yml\n```\n\nadd these lines to each environment in config/database.yml:\n\n```yaml\n    host: localhost\n    username: foreman\n    password: foreman\n```\n\n```shell\ncp config/ignored_environments.yml.sample config/ignored_environments.yml\ndocker run --name foreman-db -v foreman_data:/var/lib/postgresql/data -e POSTGRES_DB=foreman -e POSTGRES_USER=foreman -e POSTGRES_PASSWORD=foreman -p 5432:5432 -d postgres:13\nbundle exec bin/rake db:migrate\nRAILS_ENV=development bundle exec bin/rake db:seed assets:precompile locale:pack webpack:compile\n```\n\n* You can reset and change your admin password if needed:\n\n```shell\nRAILS_ENV=development bundle exec bin/rake permissions:reset password=changeme\n```\n\n* You should write tests and you can execute those specific to this plugin:\n\nfirst, create database `foreman-test`:\n\n```shell\nRAILS_ENV=test bundle exec rake db:create\n```\n\nthen add test schema and seeds:\n\n```shell\nRAILS_ENV=test bundle exec bin/rake db:migrate\nRAILS_ENV=test bundle exec bin/rake db:seed\n```\n\nFinally you can test all:\n\n```shell\nexport DISABLE_SPRING=true\nbundle exec bin/rake test:foreman_fog_proxmox\n```\n\nor just one:\n\n```shell\nexport DISABLE_SPRING=true\nbundle exec bin/rake test TEST=../foreman_fog_proxmox/test/functional/compute_resources_controller_test.rb DATABASE_URL=nulldb://nohost\n```\n\n* In foreman_fog_proxmox source directory, check code syntax with rubocop and foreman rules:\n\n```shell\nbundle exec rubocop\n```\n\nsafe autocorrect:\n\n```shell\nbundle exec rubocop -a\n```\n\nTemporary ignore offenses:\n\n```shell\nbundle exec rubocop --auto-gen-config\n```\n\n* See deface overrides result:\n\n```shell\nbundle exec bin/rake deface:get_result['hosts/_compute_detail']\n```\n\n* In foreman directory, after you modify foreman_fog_proxmox specific assets (proxmox.js, etc) you have to precompile it:\n\n```shell\nbundle exec bin/rake plugin:assets:precompile[foreman_fog_proxmox]\n```\n\n* In foreman directory, after you modify foreman_fog_proxmox translations (language, texts in new files, etc) you have to compile it:\n\nPrerequisites: [Transifex CLI](https://github.com/transifex/cli)\n\n```shell\nbundle exec bin/rake plugin:gettext\\[foreman_fog_proxmox\\]\n```\n\n* In foreman directory, run in a new terminal the webpack-dev-server:\n\n```shell\n./node_modules/.bin/webpack-dev-server-without-h2 --config config/webpack.config.js\n```\n\n* Or without webpack-dev-server, add this line in config/settings.yml:\n\n```yml\n:webpack_dev_server: false\n```\n\nthen compile webpack assets:\n\n```shell\nbundle exec bin/rake webpack:compile\n```\n\n* In foreman directory, run rails server:\n\n```shell\nbundle exec bin/rails server\n```\n\n* Or you can launch all together:\n\n```shell\nbundle exec foreman start\n```\n\nSee details in [foreman plugin development](https://projects.theforeman.org/projects/foreman/wiki/How_to_Create_a_Plugin)\n\n## Contributing\n\nIf you like it and still want to improve it, [sponsor me](https://github.com/sponsors/tristanrobert)!\n\n* You can reach the [contributors](.github/CONTRIBUTORS.md).\n* [Translate it in your favorite language](https://www.transifex.com/foreman/foreman/foreman_fog_proxmox/)\n* Bug reports and pull requests are welcome on GitHub at [ForemanFogProxmox](https://github.com/theforeman/foreman_fog_proxmox).\n\nPlease read more information about [how to contribute](.github/CONTRIBUTING.md).\n\n## License\n\nThe code is available as open source under the terms of the [GNU Public License v3](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheforeman%2Fforeman_fog_proxmox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheforeman%2Fforeman_fog_proxmox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheforeman%2Fforeman_fog_proxmox/lists"}