https://github.com/theforeman/foreman_fog_proxmox
Foreman plugin to add Proxmox compute resource based on fog-proxmox gem
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 34 committers (2.9%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.1%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Foreman plugin to add Proxmox compute resource based on fog-proxmox gem
Basic Info
- Host: GitHub
- Owner: theforeman
- License: gpl-3.0
- Language: Ruby
- Default Branch: master
- Size: 10.7 MB
Statistics
- Stars: 112
- Watchers: 17
- Forks: 33
- Open Issues: 32
- Releases: 48
Topics
Metadata Files
README.md

ForemanFogProxmox
Foreman plugin that adds Proxmox compute resource: managing virtual machines and containers using the fog-proxmox module.
It is intended to satisfy this feature.
If you like it and need more features you can contribute or simply support it:
Support
You can support the plugin development via the following methods:
Compatibility versions
|Fog-proxmox|Proxmox|Foreman-fog-proxmox|Foreman|Ruby| |--|--|--|--|--| |<0.6|<5.3|<0.6|<=1.20|>=2.3| |=0.6|<5.4|=0.6|=1.21|>=2.3| |<=0.8 |<6.0|>=0.7|>=1.22|>=2.3| |<0.9 |<6.0|=0.9|>=1.22|>=2.3| |>=0.9 |>=5.4|>=0.9.1|>=1.22|>=2.3| |>=0.10 |>=5.4|>=0.9.4|>=1.22|>=2.5| |>=0.11 |>=5.4|>=0.10|>=1.22|>=2.5| |>=0.12 |>=6.1|>=0.11|>=2.0|>=2.5| |>=0.14 |>=6.2|=0.13.0|>=2.4|>=2.7| |>=0.14 |>=6.2|>=0.13.1|>=2.3|>=2.5| |>=0.14 |>=6.2,<8.0|>=0.14.0|>=2.5|>=2.5|
Installation
From OS packages (required)
Please see the Foreman manual for complete instructions:
Install from package 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.
Then you can install it with the package manager, in Debian/Ubuntu:
shell
sudo apt-get install ruby-foreman-fog-proxmox
and in Fedora/Redhat Linux:
shell
sudo dnf install rubygem-foreman_fog_proxmox
Redhat, CentOS or Fedora users should also setup Selinux to allow foreman and all its plugins to work.
From gem
See complete details in plugin installation from gem
Here is a Debian sample:
- Install foreman from OS packages:
shell
sudo apt install -y foreman foreman-pgsql
- Use only foreman user (not root!)
sudo -u foreman ... - In /usr/share/foreman/bundler.d directory, add Gemfile.local.rb file and add this line in it:
shell
echo "gem 'foreman_fog_proxmox'" | sudo -u foreman tee /usr/share/foreman/bundler.d/Gemfile.local.rb
- Install the gem plugin:
shell
sudo -u foreman /usr/bin/foreman-ruby /usr/bin/bundle install
- Precompile plugin assets:
You need nodejs installed in order to use foreman-assets package.
shell
/usr/bin/foreman-ruby /usr/bin/bundle exec bin/rake plugin:assets:precompile[foreman_fog_proxmox]
- Compile plugin translations if (french) needed :
shell
/usr/bin/foreman-ruby /usr/bin/bundle exec bin/rake plugin:gettext[foreman_fog_proxmox]
- Complete installation of foreman 1.22 with foreman-installer:
shell
sudo apt install -y foreman-installer
sudo foreman-installer
If you don't want to have HTTP 503 errors when apt is trying to install puppetserver, then add this before launching foreman-installer:
shell
echo 'Acquire::http::User-agent "Mozilla/5.0 (Linux)";' | sudo tee /etc/apt/apt.conf.d/96useragent
See complete details in plugin installation from gem
Then you can check plugin installation after login into your new foreman server seeing the about foreman page:

Usage
Development
Dev prerequisites
- You need a Proxmox VE 6.2+ server running.
- You need ruby 2.7. You can install it with asdf-vm.
- You also need nodejs 14 in your dev machine to run webpack-dev-server. You can install it with asdf-vm.
Platform
- Fork this github repo.
- Clone it on your local machine
- Install foreman v2.5+ on your machine:
shell
git clone https://github.com/theforeman/foreman -b develop
- Create a Gemfile.local.rb file in foreman/bundler.d/
- Add this line:
ruby
gem 'foreman_fog_proxmox', :path => '../../theforeman/foreman_fog_proxmox'
gem 'fog-proxmox', :path => '../../fog/fog-proxmox' # optional if you need to modify fog-proxmox code too
gem 'ruby-debug-ide' # dev
gem 'debase' # dev
gem 'solargraph' # dev
gem 'simplecov' # test
- In foreman directory, install dependencies:
```shell gem install bundler
prerequisites libraries on Ubuntu OS:
sudo apt install postgresql-client-13 libpq-dev libsystemd-dev
bundle config set without 'libvirt ovirt' bundle install ```
shell
npm install
- Configure foreman settings:
shell
cp config/settings.yaml.test config/settings.yaml
add these lines to config/settings.yml:
yaml
:webpack_dev_server: true
:destroy_vm_on_host_delete: true # optional, could be set on UI
:logging:
:level: debug
:loggers:
:sql:
:enabled: false
- SQLite is no more default rails dev or test database, instead add:
shell
DATABASE_URL=nulldb://nohost
- (Optional) test and dev with postgresql database:
shell
cp config/database.yml.example config/database.yml
add these lines to each environment in config/database.yml:
yaml
host: localhost
username: foreman
password: foreman
shell
cp config/ignored_environments.yml.sample config/ignored_environments.yml
docker 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
bundle exec bin/rake db:migrate
RAILS_ENV=development bundle exec bin/rake db:seed assets:precompile locale:pack webpack:compile
- You can reset and change your admin password if needed:
shell
RAILS_ENV=development bundle exec bin/rake permissions:reset password=changeme
- You should write tests and you can execute those specific to this plugin:
first, create database foreman-test:
shell
RAILS_ENV=test bundle exec rake db:create
then add test schema and seeds:
shell
RAILS_ENV=test bundle exec bin/rake db:migrate
RAILS_ENV=test bundle exec bin/rake db:seed
Finally you can test all:
shell
export DISABLE_SPRING=true
bundle exec bin/rake test:foreman_fog_proxmox
or just one:
shell
export DISABLE_SPRING=true
bundle exec bin/rake test TEST=../foreman_fog_proxmox/test/functional/compute_resources_controller_test.rb DATABASE_URL=nulldb://nohost
- In foremanfogproxmox source directory, check code syntax with rubocop and foreman rules:
shell
bundle exec rubocop
safe autocorrect:
shell
bundle exec rubocop -a
Temporary ignore offenses:
shell
bundle exec rubocop --auto-gen-config
- See deface overrides result:
shell
bundle exec bin/rake deface:get_result['hosts/_compute_detail']
- In foreman directory, after you modify foremanfogproxmox specific assets (proxmox.js, etc) you have to precompile it:
shell
bundle exec bin/rake plugin:assets:precompile[foreman_fog_proxmox]
- In foreman directory, after you modify foremanfogproxmox translations (language, texts in new files, etc) you have to compile it:
Prerequisites: Transifex CLI
shell
bundle exec bin/rake plugin:gettext\[foreman_fog_proxmox\]
- In foreman directory, run in a new terminal the webpack-dev-server:
shell
./node_modules/.bin/webpack-dev-server-without-h2 --config config/webpack.config.js
- Or without webpack-dev-server, add this line in config/settings.yml:
yml
:webpack_dev_server: false
then compile webpack assets:
shell
bundle exec bin/rake webpack:compile
- In foreman directory, run rails server:
shell
bundle exec bin/rails server
- Or you can launch all together:
shell
bundle exec foreman start
See details in foreman plugin development
Contributing
If you like it and still want to improve it, sponsor me!
- You can reach the contributors.
- Translate it in your favorite language
- Bug reports and pull requests are welcome on GitHub at ForemanFogProxmox.
Please read more information about how to contribute.
License
The code is available as open source under the terms of the GNU Public License v3.
Owner
- Name: The Foreman
- Login: theforeman
- Kind: organization
- Email: dev@community.theforeman.org
- Location: Earth
- Website: https://theforeman.org
- Repositories: 231
- Profile: https://github.com/theforeman
GitHub Events
Total
- Create event: 16
- Release event: 4
- Issues event: 30
- Watch event: 5
- Delete event: 7
- Issue comment event: 66
- Push event: 52
- Pull request event: 80
- Pull request review comment event: 4
- Pull request review event: 20
Last Year
- Create event: 16
- Release event: 4
- Issues event: 30
- Watch event: 5
- Delete event: 7
- Issue comment event: 66
- Push event: 52
- Pull request event: 80
- Pull request review comment event: 4
- Pull request review event: 20
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Tristan Robert | t****4@g****m | 397 |
| Tristan Robert | t****4@g****m | 84 |
| Manisha Singhal | s****l@a****e | 50 |
| github-actions[bot] | 4****] | 12 |
| Markus Bucher | b****r@a****e | 9 |
| Bernhard Suttner | s****d | 7 |
| Dominic Cleal | d****c@c****g | 7 |
| Nadja Heitmann | n****h@a****e | 7 |
| Greg Sutcliffe | g****f@r****m | 6 |
| akumari | a****i@r****m | 5 |
| Evgeni Golov | e****i@g****e | 5 |
| Dominic Cleal | d****l@r****m | 4 |
| Mark Hlawatschek | h****k@a****e | 4 |
| Ohad Levy | o****y@g****m | 4 |
| Gregory MALFRAY | g****y@k****r | 3 |
| Daniel Lobato García | me@d****e | 2 |
| Hedius | g****t@h****u | 2 |
| Quirin Pamp | p****p@a****e | 2 |
| Matthias Dellweg | d****g@a****e | 2 |
| yifatmakias | y****s@r****m | 2 |
| Amos Benari | a****i@r****m | 1 |
| David Davis | d****s | 1 |
| Joseph Mitchell Magen | j****n@r****m | 1 |
| Eric Le Lay | e****y@a****m | 1 |
| Guido Günther | a****x@s****g | 1 |
| James Wong | w****t@g****m | 1 |
| Lukas Zapletal | l****t@r****m | 1 |
| Michael Moll | k****v@k****e | 1 |
| Romuald Conty | r****d@o****r | 1 |
| Timo Goebel | m****l@t****e | 1 |
| and 4 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 120
- Total pull requests: 152
- Average time to close issues: 5 months
- Average time to close pull requests: 12 days
- Total issue authors: 67
- Total pull request authors: 15
- Average comments per issue: 1.99
- Average comments per pull request: 0.41
- Merged pull requests: 104
- Bot issues: 0
- Bot pull requests: 47
Past Year
- Issues: 20
- Pull requests: 63
- Average time to close issues: 4 months
- Average time to close pull requests: 3 days
- Issue authors: 18
- Pull request authors: 8
- Average comments per issue: 1.05
- Average comments per pull request: 0.37
- Merged pull requests: 43
- Bot issues: 0
- Bot pull requests: 21
Top Authors
Issue Authors
- Manisha15 (22)
- tristanrobert (15)
- jacac (5)
- ahoiroman (4)
- neomilium (3)
- l00d3r (3)
- btoneill (3)
- santachago (3)
- rm-td (3)
- bk-lg (2)
- djken09 (2)
- karli-sjoberg (2)
- selund (2)
- MichaelTrip (1)
- Kariton (1)
Pull Request Authors
- Manisha15 (81)
- github-actions[bot] (63)
- nadjaheitmann (14)
- tristanrobert (11)
- evgeni (6)
- sbernhard (5)
- Kariton (2)
- archanaserver (2)
- libc225so (2)
- elelayan (1)
- neomilium (1)
- MariaAga (1)
- Hedius (1)
- m-bucher (1)
- yifatmakias (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- rdoc >= 0 development
- rubocop >= 0 development
- simplecov >= 0 development
- deface >= 0
- fog-proxmox ~> 0.14
- actions/checkout v3 composite
- actions/download-artifact v1 composite
- actions/setup-node v1 composite
- actions/upload-artifact v1 composite
- paambaati/codeclimate-action v3.2.0 composite
- ruby/setup-ruby v1 composite
- postgres 13 docker
- actions/checkout v3 composite
- google-github-actions/release-please-action v3 composite
- ruby/setup-ruby v1 composite