Skip to content
Open
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
700 commits
Select commit Hold shift + click to select a range
1639a88
Bump next from 14.2.15 to 14.2.21 in /standalone
dependabot[bot] Jan 4, 2025
32734a1
Bump jinja2 from 3.1.4 to 3.1.5
dependabot[bot] Jan 8, 2025
13774b0
Bump strawberry-graphql from 0.243.1 to 0.257.0
dependabot[bot] Jan 9, 2025
69b8192
Merge pull request #223 from netdevopsbr/dependabot/pip/strawberry-gr…
emersonfelipesp Jan 14, 2025
f59862b
Merge pull request #222 from netdevopsbr/dependabot/pip/jinja2-3.1.5
emersonfelipesp Jan 14, 2025
5678ae2
Upload Proxbox services explanation
emersonfelipesp Jan 14, 2025
8c21fab
Update README.md with Proxbox Services image
emersonfelipesp Jan 14, 2025
c8d8cb7
Add drawio file of proxbox services img
emersonfelipesp Jan 14, 2025
1a26207
Bump django from 5.0.10 to 5.0.11
dependabot[bot] Jan 14, 2025
6d78628
Fix correct handling when netbox's PLUGINS_CONFIG variable is empty.
emersonfelipesp Jan 15, 2025
d82f261
Remove existing migrations
emersonfelipesp Jan 15, 2025
72a4f76
Add ProxmoxEndpoint, NetboxEndpoint and FastAPIEndpoint models and de…
emersonfelipesp Jan 16, 2025
7f99282
Deletes stale 'admin' module from plugin
emersonfelipesp Jan 16, 2025
99215d5
Add first version of ProxmoxEndpoint views
emersonfelipesp Jan 16, 2025
8ba59a2
Removes icon_classes and some other changes to models
emersonfelipesp Jan 16, 2025
7255714
Merge pull request #225 from netdevopsbr/dependabot/pip/django-5.0.11
emersonfelipesp Jan 17, 2025
9d2e735
Merge pull request #221 from netdevopsbr/dependabot/npm_and_yarn/stan…
emersonfelipesp Jan 17, 2025
6ded33e
Several improvements to views related to ProxmoxEndpoint model
emersonfelipesp Jan 17, 2025
026ab39
Add template 'proxmoxendpoint.html' to render ProxmoxEndpoint object
emersonfelipesp Jan 17, 2025
c60a07a
Add Filter feature for ProxmoxEndpoint ListView
emersonfelipesp Jan 17, 2025
8a5a5fa
API route created for CRUD operations with Proxmox Endpoints
emersonfelipesp Jan 17, 2025
4b3ecba
Enables link to Netbox IP Address object on Proxmox Endpoints List View
emersonfelipesp Jan 17, 2025
22f2600
Add ProxmoxEndpoint default value for name field. CRUD operations wor…
emersonfelipesp Jan 17, 2025
7f0aae4
All GUI and API views created for 'NetBoxEndpoint' model.
emersonfelipesp Jan 20, 2025
125096e
Modify NetBox and Proxmox table default fields
emersonfelipesp Jan 20, 2025
74ce3ae
All GUI and API views created for 'FastAPIEndpoint' model.
emersonfelipesp Jan 20, 2025
edef5c3
Closes #224 - Merge branch 'develop' of https://github.com/netdevopsb…
emersonfelipesp Jan 20, 2025
1d3907b
Closes #224 - Merge pull request #226 from netdevopsbr/expose-cfg-via…
emersonfelipesp Jan 20, 2025
febf9df
Rendering Proxmox Cluster from ProxmoxEndpoint objects instead of con…
emersonfelipesp Jan 20, 2025
d8e9fe4
Changes Proxmox card size to fit 3 in single row
emersonfelipesp Jan 20, 2025
2cfd5bf
Rendering NetBox Card from NetBoxEndpoint object instead of configura…
emersonfelipesp Jan 20, 2025
6290bb8
Rendering FastAPI Card from FastAPIEndpoint object instead of configu…
emersonfelipesp Jan 20, 2025
6f0d800
Removes JSON config part of proxbox homepage
emersonfelipesp Jan 20, 2025
8a8bade
Closes #229 - Add name fields to Netbox and FastAPI card, also change…
emersonfelipesp Jan 20, 2025
2906d4c
Merge pull request #230 from netdevopsbr/change-full-update-page
emersonfelipesp Jan 20, 2025
803faf0
Moves 'backend' package to parent folder and renames it to 'proxbox_api'
emersonfelipesp Jan 20, 2025
17fa164
Start changing imports from 'netbox_proxbox.backend' to 'proxbox_api'
emersonfelipesp Jan 20, 2025
62de536
Finish imports changing from 'netbox_proxbox.backend' to 'proxbox_api'
emersonfelipesp Jan 20, 2025
1e22146
Returning service status HTML badge through HTMX on Homepage. Now put…
emersonfelipesp Jan 20, 2025
05b651f
FastAPI cards already working with connection status badge
emersonfelipesp Jan 20, 2025
7c8bdbb
Getting initial status of each service (Netbox/FastAPI/Proxmox)
emersonfelipesp Jan 22, 2025
3d24022
Fix main.py path on proxbox.service ExecStart variable
emersonfelipesp Jan 22, 2025
ded67e3
Update README.md with current standards
emersonfelipesp Jan 22, 2025
73f36ce
Merge pull request #232 from netdevopsbr/keepalive-status
emersonfelipesp Jan 22, 2025
7271bae
Fix issue to add new FastAPIEndpoint and NetBoxEndpoint when there's …
emersonfelipesp Jan 23, 2025
3a0025b
Closes #233 - Allow only one object for NetBoxEndpoint and FastAPIEnd…
emersonfelipesp Jan 23, 2025
378c275
Merge pull request #235 from netdevopsbr/move-config
emersonfelipesp Jan 23, 2025
05ef2d2
Start using SQLModel on proxbox_api package to create NetBox endpoint…
emersonfelipesp Jan 23, 2025
c407965
Proxbox API already trying to connect to NetBox via SQLModel object i…
emersonfelipesp Jan 24, 2025
f86d95f
Successful connection with NetBox using SQLModel object
emersonfelipesp Jan 24, 2025
d6a865c
Ignore database file
emersonfelipesp Jan 24, 2025
88fa974
Plugin able to create or modify NetBox Endpoint on FastAPI automatica…
emersonfelipesp Jan 24, 2025
a8856db
Delete proxbox_api/database.db
emersonfelipesp Jan 24, 2025
ee96331
Add error handling when trying to test NetBox communication when Fast…
emersonfelipesp Jan 24, 2025
bd550be
Return FastAPI and NetBox to previous layout, dividing the same row o…
emersonfelipesp Jan 24, 2025
b81c492
FastAPI now using Proxmox information from plugin models instead of c…
emersonfelipesp Jan 24, 2025
36726bc
Merge pull request #238 from netdevopsbr/config-to-models
emersonfelipesp Jan 24, 2025
6331217
Added instructions to install pyentbox-api on dev mode
emersonfelipesp Feb 10, 2025
f118042
Add pynetbox-api .env instruction
emersonfelipesp Feb 10, 2025
7bec4a0
Renames logging.py to logger.py to avoid import conflicts
emersonfelipesp Feb 10, 2025
e0a73d7
Finished moving imports from logging to logger
emersonfelipesp Feb 10, 2025
7afabb8
Proxbox Backend already able to communicate with NetBox through pynet…
emersonfelipesp Feb 10, 2025
115715c
'/dcim/devices/create' endpoint creating Proxmox Nodes using pynetbox…
emersonfelipesp Feb 10, 2025
b90855c
Create ProxboxTag and ProxboxTagSchemaIn subclassing pynetbox-api cla…
emersonfelipesp Feb 11, 2025
1dcf950
/proxmox/cluster/status now returning structured pydantic schema with…
emersonfelipesp Feb 11, 2025
479aa53
Add example response to /proxmox/cluster/status endpoint
emersonfelipesp Feb 11, 2025
8b7ef9b
Bump cryptography from 43.0.1 to 44.0.1
dependabot[bot] Feb 11, 2025
e61a640
Add /proxmox/{node}/network endpoint, returning all network interface…
emersonfelipesp Feb 11, 2025
264706c
/dcim/devices/create correctly returning all Proxmox Nodes (NetBox De…
emersonfelipesp Feb 11, 2025
62b337e
/dcim/devices/create endpoint able to filter device and not return al…
emersonfelipesp Feb 12, 2025
955334e
/dcim/devices/{node}/interfaces/create endpoint already creating Prox…
emersonfelipesp Feb 12, 2025
511ebe4
Add error handling when Proxmox Connection fails or incorrect argumen…
emersonfelipesp Feb 12, 2025
299bd05
Split part of create_proxmox_device_interfaces() into two, adding cre…
emersonfelipesp Feb 12, 2025
23c9539
Add new routes, now left to code it. Other minor changes.
emersonfelipesp Feb 14, 2025
16d9a4d
Add 'mode' field (standalone or cluster) to /proxmox/cluster/status e…
emersonfelipesp Feb 14, 2025
3c3e92e
Update pynetbox_api imports with new pattern. Device now being create…
emersonfelipesp Feb 14, 2025
2c53b7b
Asynchronously creating Virtual Machines with pynetbox-api lib.
emersonfelipesp Feb 16, 2025
54767dc
Including Virtual Machine Role (QEMU or LXC) on VM creation
emersonfelipesp Feb 17, 2025
9cda6cc
/extras/custom-fields/create creates the current 05 VirtualMachine cu…
emersonfelipesp Feb 18, 2025
e0073ee
Add /proxmox/{node}/{type}/{vmid}/config returning QEMU/LXC config wi…
emersonfelipesp Feb 18, 2025
579c8f1
No need to pass cluster info on get_vm_config anymore.
emersonfelipesp Feb 18, 2025
699f099
Creating and feeding Virtual Machine custom-fields
emersonfelipesp Feb 20, 2025
4305b03
'/virtualization/virtual-machines/create' now creating Virtual Machin…
emersonfelipesp Feb 21, 2025
49ee1d1
Adding IP Address and Interface Bridge to VM Interface
emersonfelipesp Feb 21, 2025
3019c31
Improve CORS list based on NetBox Endpoint. Change 'Sync Virtual Mach…
emersonfelipesp Feb 23, 2025
a950819
Start working with HTMX to handle websocket client.
emersonfelipesp Feb 24, 2025
a0ad9fe
Populating Virtual Machine table rows using new pynetbox-lib and orig…
emersonfelipesp Feb 25, 2025
dd9fc4b
Add VM interfaces to VM Table and minor changes to how table is popul…
emersonfelipesp Feb 25, 2025
a2063bc
Virtual Machine Table rows being dynamically being updated as syncing…
emersonfelipesp Feb 25, 2025
574add3
Minor updates to VM table, change Sync Status to complete after scrip…
emersonfelipesp Feb 25, 2025
a09e843
Start populating Devices (Nodes) Table
emersonfelipesp Feb 25, 2025
1e1eefa
Virtual Machine table working great, now working on Devices table.
emersonfelipesp Feb 26, 2025
dc5f37c
Merge pull request #245 from netdevopsbr/pynetbox-api
emersonfelipesp Feb 26, 2025
edf9d4e
Update ProxboxConfig wth min and max versions and other minor changes
emersonfelipesp Feb 26, 2025
686f8c1
Moved all js scripts to static folder. Created WebSocketClient class …
emersonfelipesp Feb 26, 2025
e2182e3
New websocket class already populating table div, now pending to fix …
emersonfelipesp Feb 26, 2025
94ae960
Virtual Machines table now fully functional. Updating the values inst…
emersonfelipesp Feb 26, 2025
bab790f
Add intermediate websocket message to when VM is created, but left to…
emersonfelipesp Feb 26, 2025
f46d09d
Add progress count on Virtual Machines Table to user follow the synci…
emersonfelipesp Feb 27, 2025
5ed9297
Devices (Nodes) Table being populated with new ProxboxWebSocket class
emersonfelipesp Feb 27, 2025
10876a6
Removed database-related code. Now fully using pynetbox-api NetBox se…
emersonfelipesp Feb 28, 2025
ed30243
Adjust to use only dict results from pynetbox-api
emersonfelipesp Feb 28, 2025
ec1c728
Merge pull request #248 from netdevopsbr/websocket
emersonfelipesp Feb 28, 2025
374dbc0
Fully using only dict messagens instead of pydantic schemas and optim…
emersonfelipesp Feb 28, 2025
312e17d
Merge pull request #249 from netdevopsbr/websocket
emersonfelipesp Feb 28, 2025
9a43251
Changed ProxboxTag to be a FastAPI dependency injection and several m…
emersonfelipesp Mar 1, 2025
07bbdc0
Add 'Full Update Sync' button which sync nodes and then virtual machines
emersonfelipesp Mar 1, 2025
5c1a029
Rollback to call sync functions directly to avoid coroutine problem.
emersonfelipesp Mar 1, 2025
9d18029
Add 'pynetbox-api' package as project dependency with 'uv' package ma…
emersonfelipesp Mar 1, 2025
1c272c1
Update version to 'v0.0.6b1'
emersonfelipesp Mar 1, 2025
9fe2e80
Removes old 'setup.py' file. Now using 'pyproject.toml'
emersonfelipesp Mar 1, 2025
55a09cd
Add netbox-proxbox.proxbox_api package dependencies on root pyproject…
emersonfelipesp Mar 1, 2025
ec80f38
Update production install instructions
emersonfelipesp Mar 1, 2025
854920d
Update version to 0.0.6b1
emersonfelipesp Mar 1, 2025
3fad421
Update version of proxbox_api package to 0.0.1
emersonfelipesp Mar 1, 2025
fa54f79
Update README.md
emersonfelipesp Mar 1, 2025
be98f9a
Create a Dockerfile to proxbox_api package and update its README.
emersonfelipesp Mar 3, 2025
27aabbc
Merge branch 'develop' of https://github.com/netdevopsbr/netbox-proxb…
emersonfelipesp Mar 3, 2025
fb26014
Update 'proxbox_api' README with git install instructions
emersonfelipesp Mar 3, 2025
ad0f405
Update README.md new with backend instructions
emersonfelipesp Mar 3, 2025
eff5f97
Temporarily allow '*' wildcard hosts (all hosts) on CORS origins unti…
emersonfelipesp Mar 3, 2025
1ed31ac
Merge branch 'develop' of https://github.com/netdevopsbr/netbox-proxb…
emersonfelipesp Mar 3, 2025
0799a2a
Homepage Template does not gives error when there's no objects create…
emersonfelipesp Mar 3, 2025
c926e66
Show a create button for each object type (Proxmox/FastAPI/NetBox) wh…
emersonfelipesp Mar 3, 2025
cb7bfe0
Fix 'Create new FastAPI Endpoint' button linking to wrong URL
emersonfelipesp Mar 3, 2025
2b76611
Nodes Template now rednering correctly with new code and even if ther…
emersonfelipesp Mar 3, 2025
2d50869
Changed virtual_machines table location and its references
emersonfelipesp Mar 3, 2025
ccf625c
Virtual Machines Template now also working.
emersonfelipesp Mar 3, 2025
a6c5e07
Merge pull request #257 from netdevopsbr/256-fix-templates
emersonfelipesp Mar 3, 2025
33eb0e7
Add initial install instruction with mkcert to startup proxbox backend
emersonfelipesp Mar 4, 2025
4a688ed
Add 'domain' field on 'FastAPIEdnpoint' and update form with help tex…
emersonfelipesp Mar 4, 2025
56c5731
Prefering domain over IP to display card. Does not fallback to defaul…
emersonfelipesp Mar 4, 2025
6719768
Create initial nginx config file
emersonfelipesp Mar 4, 2025
c73c7a1
Fixed Proxmox Cards display on GUI.
emersonfelipesp Mar 4, 2025
f6f1792
Ignore PEM files
emersonfelipesp Mar 4, 2025
de953ee
Add websocket config on NGINX and update readme
emersonfelipesp Mar 4, 2025
d8d9f14
Various different changes
emersonfelipesp Mar 4, 2025
c12620d
Initial version of websocket communication between Django Server (Web…
emersonfelipesp Mar 5, 2025
e81e5a0
Django and FastAPI backends with function websocket connection. GUI o…
emersonfelipesp Mar 6, 2025
d8d5ec3
Bump django from 5.0.11 to 5.0.13
dependabot[bot] Mar 6, 2025
a9b8ede
Move 'get_fastapi_url' function to utils module and add REQUESTS_CA_B…
emersonfelipesp Mar 7, 2025
1662b23
Refactor how Status Badge element on homepage cards works.
emersonfelipesp Mar 7, 2025
6e6fbb3
Change get_fastapi_url to be imported instead of present on file
emersonfelipesp Mar 7, 2025
698a689
Added a view to render Proxmox Card using HTMX instead of JavaScript …
emersonfelipesp Mar 7, 2025
94d301f
Reduce code duplication on Proxmox Cards rendering by only replacing …
emersonfelipesp Mar 7, 2025
335c7f3
Changed DoaminField to accept 'localhost' and FastAPIEndpoint.domain …
emersonfelipesp Mar 12, 2025
3fd5c88
Correct if condition to whether or not check for CA folder
emersonfelipesp Mar 12, 2025
d032f65
FastAPI and NetBox objects now has a obligatory domain field. IP Addr…
emersonfelipesp Mar 12, 2025
600d485
NetBox cards now shows IP Address and Domain fields on different lines.
emersonfelipesp Mar 12, 2025
9849c40
Closes #261 - Finished initial domain work with mkcert. Started worki…
emersonfelipesp Mar 12, 2025
3369964
Merge pull request #262 from netdevopsbr/258-mkcert
emersonfelipesp Mar 12, 2025
6a61ab4
Create a list of origins to accept on CORS.
emersonfelipesp Mar 13, 2025
9f0fc3a
Change allow_origins attribute of CORSMiddleware to accept the newest…
emersonfelipesp Mar 13, 2025
6fe2db1
Update README.md with note about netbox v4.0
emersonfelipesp Mar 13, 2025
093c9b2
Fix CORS origins to get from pynetbox-api sqlite database instead of …
emersonfelipesp Mar 13, 2025
63f9fc7
'Sync Nodes' method already working and creating the Devices with the…
emersonfelipesp Mar 13, 2025
f86058b
Change websocket url name to 'websocket'
emersonfelipesp Mar 13, 2025
0365651
Add 'Sync Virtual Machines with server-only websocket'
emersonfelipesp Mar 13, 2025
8e03a78
Delete javascript code related with homepage template
emersonfelipesp Mar 14, 2025
51a4eaa
Start working with Polling on webclient instead of websocket
emersonfelipesp Mar 14, 2025
dc98283
Start working with queue and sync process control on websocket_client…
emersonfelipesp Mar 14, 2025
0afbf0d
Add websocket client reconnection after 5 seconds when any error occurs.
emersonfelipesp Mar 18, 2025
f7656a1
Add attribute 'use_css' to make optional to return styled or not the …
emersonfelipesp Mar 19, 2025
92c3138
Improve websocket messages when not styled (raw object) and minor cha…
emersonfelipesp Mar 19, 2025
4707fe8
Add /virtualization/virtual-machines/{id}/summary and /summary/exampl…
emersonfelipesp Mar 21, 2025
0cb8e37
Bump gunicorn from 22.0.0 to 23.0.0
dependabot[bot] Mar 22, 2025
df54881
'/virtualization/virtual-machines/{id}' correctly handling non-existe…
emersonfelipesp Mar 24, 2025
f21bfe3
Improve fallback handling from domain to IP when domain response fails.
emersonfelipesp Mar 24, 2025
fce16fa
Implement initial 'Sync Process' model and its GUI CRUD.
emersonfelipesp Mar 24, 2025
d68fd91
Created API view to handle Sync Process model (GET and POST methods) …
emersonfelipesp Mar 25, 2025
85e882f
Sync Nodes, Sync Virtual Machines and Sync All routines already using…
emersonfelipesp Mar 25, 2025
ffda55d
Make seevral improvements to SyncProcess model CRUD via GUI and API. …
emersonfelipesp Mar 26, 2025
ed2c729
Change API serializer runtime and completed_at fields of SyncProcessS…
emersonfelipesp Mar 26, 2025
29b2f2d
Proxbox Backend filling runtime field of SyncProcess Django Model.
emersonfelipesp Mar 26, 2025
06aaeb2
Add template to render SyncProcess object.
emersonfelipesp Mar 26, 2025
d2c37b4
Added 'extras.Tags' object to SyncProcess Serializer. Backend filling…
emersonfelipesp Mar 26, 2025
c489cd1
Syncing with HTTP only with Sync Process (without using WebSocket) fu…
emersonfelipesp Mar 27, 2025
06acc18
Fix showing WebSocket Node and VM tables when websocket is disabled.
emersonfelipesp Mar 27, 2025
31fcab9
Merge pull request #269 from netdevopsbr/263-websocket-server-only
emersonfelipesp Mar 27, 2025
164064d
Instatiate websocket connection based on the new FastAPIEndpoint webs…
emersonfelipesp Mar 27, 2025
b5c9615
Closes #252 - Allow GUI sync buttons to be clicked only when Websocke…
emersonfelipesp Mar 27, 2025
48b0497
Merge pull request #270 from netdevopsbr/252-websocket-sync-button
emersonfelipesp Mar 27, 2025
65fe7b2
Merge pull request #240 from netdevopsbr/dependabot/pip/cryptography-…
emersonfelipesp Mar 28, 2025
f5c2f3c
Merge pull request #260 from netdevopsbr/dependabot/pip/django-5.0.13
emersonfelipesp Mar 28, 2025
4c381ae
Merge pull request #268 from netdevopsbr/dependabot/pip/gunicorn-23.0.0
emersonfelipesp Mar 28, 2025
8b1e2de
Closes #234 - Allow only one object for NetBoxEndpoint and FastAPIEnd…
emersonfelipesp Mar 28, 2025
bd6f423
Remove get_object override from ViewSet, as only create function on S…
emersonfelipesp Mar 28, 2025
88b7e25
Merge pull request #275 from netdevopsbr/234-allow-one-object-using-api
emersonfelipesp Mar 28, 2025
b3c3113
Closes #236 - Stop using requirements.txt and move pyproject.toml fro…
Mar 29, 2025
157af5a
Fix queryset before table exist. Remove proxbox_api dependencies of n…
Mar 29, 2025
fcaf8d8
Change NetBoxEndpoint.token to be a ForeignKey relation to users.Token
Mar 29, 2025
ffda91a
Update README.md with TL'DR git install instructions
emersonfelipesp Mar 29, 2025
6b852e2
Remove local-dev pynetbox-api dependnecy from proxbox_api pyproject.t…
Mar 29, 2025
bd5c9c6
Remove proxbox_api package dependencies from netbox_proxbox package p…
emersonfelipesp Mar 29, 2025
c75c52a
Add API Token column as default column on NetBoxEndpoint table.
emersonfelipesp Mar 29, 2025
6bf8447
Add Token field on NetBox Endpoint object view card.
emersonfelipesp Mar 29, 2025
2cf7219
Add details on GUI about Proxbox Backend Token.
emersonfelipesp Mar 29, 2025
d031013
Only show WebSocket URL on FastAPI card if websocket is enabled.
emersonfelipesp Mar 29, 2025
2ea3320
Reduce code repetition on homepage and fix changeSyncButtonState func…
emersonfelipesp Mar 29, 2025
fbe9e86
Update README.md with more TL'DR instructions
emersonfelipesp Mar 29, 2025
87cbb5c
Update README.md with 0-pre-installation instruction
emersonfelipesp Mar 29, 2025
33161c1
Only instantiate WebSocket client connection on plugin homepage if it…
emersonfelipesp Mar 29, 2025
39a268a
Merge branch 'develop' of https://github.com/netdevopsbr/netbox-proxb…
emersonfelipesp Mar 29, 2025
00db120
FIX: NetBox Status Badge element throwing error when IP address is no…
emersonfelipesp Mar 29, 2025
2c59e23
When no IP address is defined on NetBoxEndpoint, fallback to use 127.…
emersonfelipesp Mar 29, 2025
6ad883c
Remove stale code before pynetbox-api implementation
emersonfelipesp Mar 29, 2025
fe59911
Proxbox Backend using pynetbox_api.RawNetBoxSession instead of previo…
emersonfelipesp Mar 29, 2025
71e1da9
Improved ProxmoxEndpoint edit/add form and minor changes.
emersonfelipesp Mar 29, 2025
b6aac7d
Remove all standalone project as it is not a priority for now and the…
emersonfelipesp Mar 31, 2025
d4618ee
Remove development folder as it is not used.
emersonfelipesp Mar 31, 2025
dfafe1b
Fully implemented domain field for Proxmox Endpoints. Changed both th…
emersonfelipesp Mar 31, 2025
937d11a
Merge pull request #280 from netdevopsbr/278-proxmox-domain-field
emersonfelipesp Mar 31, 2025
5d0338f
Remove all testing migrations.
emersonfelipesp Apr 1, 2025
a37b006
Unify all new migrations into one.
emersonfelipesp Apr 1, 2025
451c7fb
Remove proxbox-api package from this repository. It was moved to http…
emersonfelipesp Apr 5, 2025
fb3c74d
Remove stale/old files from root folder.
emersonfelipesp Apr 5, 2025
52ad2a7
Improve NetBox endpoint CRUD logic.
emersonfelipesp Apr 8, 2025
5ea3742
Update version to v0.0.6b2
emersonfelipesp Apr 8, 2025
04d236a
update pyproject author email
emersonfelipesp Apr 8, 2025
69b3c5d
Initial version of VMBackup model and created its table to render it …
emersonfelipesp Apr 9, 2025
65cd1b8
Finish creating adding related code to VMBackup model.
emersonfelipesp Apr 9, 2025
defb3bf
VMBackups working with backend and automatically creating syncing it.
emersonfelipesp Apr 9, 2025
9bea8e9
Bulk Delete of VMBackup model working. Had to create custom templates…
emersonfelipesp Apr 10, 2025
9c434ef
Add backups/bulk-delete/ URL view.
emersonfelipesp Apr 10, 2025
0ef30a6
Add a 'Backups' tab on virtualization.VirtualMachine object view to s…
emersonfelipesp Apr 10, 2025
77d688c
Delete duplicated template view.
emersonfelipesp Apr 10, 2025
f4bc27f
Start updating plugin docs
emersonfelipesp Apr 16, 2025
29403af
Change project version to 0.0.6b2.post1 and remove proxbox-api as dir…
emersonfelipesp Apr 16, 2025
e6f7e97
Update docs with more installation instructions and change proxbox.se…
emersonfelipesp Apr 17, 2025
2868389
Merge branch 'develop' of https://github.com/netdevopsbr/netbox-proxb…
emersonfelipesp Apr 17, 2025
354eacb
fix: remove redundant POST call in netbox_status function
emersonfelipesp Apr 20, 2025
7f1afe8
Improve exception handling and logging in keepalive_status.py
emersonfelipesp Apr 20, 2025
3ceb1ec
Merge branch 'develop' of https://github.com/netdevopsbr/netbox-proxb…
emersonfelipesp Apr 20, 2025
faf0bd5
Add sync backups view and add button on VM Backups List View to sync it.
emersonfelipesp Apr 24, 2025
8a341b2
feat(VMBackup): Implement full CRUD operations for VM backups
emersonfelipesp Apr 26, 2025
15ec63f
feat(views): Add SyncProcessAddView to prohibit UI creation
emersonfelipesp Apr 26, 2025
fa0e3a2
fix(views): remove custom journal implementation for SyncProcess
emersonfelipesp Apr 26, 2025
b3a4e42
feat(views): standardize endpoint views and URLs
emersonfelipesp Apr 26, 2025
0dbdfa9
feat(api): Add journal entries support to SyncProcess API
emersonfelipesp Apr 26, 2025
0238448
fix(api): Correct API root view inheritance for endpoints router
emersonfelipesp Apr 26, 2025
1207b18
fix: Remove manual journal entries handling from SyncProcessSerializer
emersonfelipesp Apr 29, 2025
6c628e4
fix: journal entry creation for sync processes
emersonfelipesp Apr 29, 2025
a7b1381
Unify related VMBackup migrations into a single one
emersonfelipesp May 3, 2025
89d9a4f
Define CommonProperties to be used my Endpoint models. Like 'url' and…
emersonfelipesp May 3, 2025
a792a69
feat: Add query parameter support to sync_resource function
emersonfelipesp May 8, 2025
b475d43
Update netbox_proxbox/filtersets.py
emersonfelipesp May 8, 2025
d4d6673
Merge pull request #287 from netdevopsbr/274-backup-snapshot
emersonfelipesp May 8, 2025
bd7d5e4
Change maximum supported NetBox version to v4.3.9
emersonfelipesp Jul 11, 2025
c54ff16
feat: add FAILED status to SyncStatusChoices
emersonfelipesp Jul 14, 2025
a19f5af
Fix migration 'extras' dependency
emersonfelipesp Jul 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Upload Python Package

on:
release:
types:
- created

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel build

- name: Build distributable
run: |
python -m build

- name: Publish a Python distribution to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
156 changes: 135 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
<p align="center">
<img width="532" src="https://github.com/N-Multifibra/proxbox/blob/main/etc/img/proxbox-full-logo.png" alt="Proxbox logo">
</p>
<div align="center">
<a href="https://docs.netbox.dev.br/en/netbox/plugins/netbox-proxbox">
<img width="532" src="https://github.com/N-Multifibra/proxbox/blob/main/etc/img/proxbox-full-logo.png" alt="Proxbox logo">
</a>
<br>

<div>

### [New Documentation available!](https://docs.netbox.dev.br/en/netbox/plugins/netbox-proxbox)
</div>
<br>
</div>


# proxbox (In Development!)
**NOTE:** Although the Proxbox plugin is in development, it only use GET requests and there is no risk to harm your Proxmox environment by changing things incorrectly.

Netbox plugin which integrates Proxmox and Netbox using proxmoxer and pynetbox.

It is currently able to get the following information from Proxmox:
## Netbox Plugin which integrates [Proxmox](https://www.proxmox.com/) and [Netbox](https://netbox.readthedocs.io/)!

- Cluster name
- Nodes:
> **NOTE:** Although the Proxbox plugin is in development, it only use **GET requests** and there is **no risk to harm your Proxmox environment** by changing things incorrectly.

<br>

Proxbox is currently able to get the following information from Proxmox:

- **Cluster name**
- **Nodes:**
- Status (online / offline)
- Name
- Virtual Machines and Containers:
- **Virtual Machines and Containers:**
- Status (online / offline)
- Name
- ID
Expand All @@ -23,22 +35,34 @@ It is currently able to get the following information from Proxmox:
- Memory
- Node (Server)

---

<div align="center">

### Versions


The following table shows the Netbox and Proxmox versions compatible (tested) with Proxbox plugin.

| netbox version | proxmox version | proxbox version
| ------------- |-------------|-------------|
| >= 2.10.9 | >= v6.2.0 | v0.0.3
| >= v3.2.0 | >= v6.2.0 | =v0.0.4
| >= v3.0.0 < v3.2| >= v6.2.0 | =v0.0.3


</div>

---

### Summary
[1. Installation](#1-installation)
- [1.1. Install package](#11-install-package)
- [1.1.1. Using pip (production use)](#111-using-pip-production-use)
- [1.1.1. Using pip (production use)](#111-using-pip-production-use---not-working-yet)
- [1.1.2. Using git (development use)](#112-using-git-development-use)
- [1.2. Enable the Plugin](#12-enable-the-plugin)
- [1.3. Configure Plugin](#13-configure-plugin)
- [1.3.1. Change Netbox 'configuration.py' to add PLUGIN parameters](#131-change-netbox-configurationpy-to-add-plugin-parameters)
- [1.3.2. Change Netbox 'settings.py' to include Proxbox Template directory](#132-change-netbox-settingspy-to-include-proxbox-template-directory)
- [1.4. Run Database Migrations](#14-run-database-migrations)
- [1.5 Restart WSGI Service](#15-restart-wsgi-service)

Expand Down Expand Up @@ -66,7 +90,7 @@ The plugin is available as a Python package in pypi and can be installed with pi

### 1.1. Install package

#### 1.1.1. Using pip (production use - not working yet!)
#### 1.1.1. Using pip (production use)

Enter Netbox's virtual environment.
```
Expand All @@ -88,7 +112,7 @@ cd /opt/netbox/netbox

Clone netbox-proxbox repository
```
git clone https://github.com/N-Multifibra/netbox-proxbox.git
git clone https://github.com/netdevopsbr/netbox-proxbox.git
```

Install netbox-proxbox
Expand All @@ -98,6 +122,7 @@ source /opt/netbox/venv/bin/activate
python3 setup.py develop
```

---

### 1.2. Enable the Plugin

Expand All @@ -106,8 +131,11 @@ Enable the plugin in **/opt/netbox/netbox/netbox/configuration.py**:
PLUGINS = ['netbox_proxbox']
```

---

### 1.3. Configure Plugin

#### 1.3.1. Change Netbox '**[configuration.py](https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/configuration.example.py)**' to add PLUGIN parameters
The plugin's configuration is also located in **/opt/netbox/netbox/netbox/configuration.py**:

Replace the values with your own following the [Configuration Parameters](#configuration-parameters) section.
Expand All @@ -119,8 +147,8 @@ PLUGINS_CONFIG = {
'proxmox': {
'domain': 'proxbox.example.com', # May also be IP address
'http_port': 8006,
'user': 'root@pam',
'password': 'Strong@P4ssword',
'user': 'root@pam', # always required
'password': 'Strong@P4ssword', # only required, if you don't want to use token based authentication
'token': {
'name': 'tokenID', # Only type the token name and not the 'user@pam:tokenID' format
'value': '039az154-23b2-4be0-8d20-b66abc8c4686'
Expand All @@ -141,13 +169,97 @@ PLUGINS_CONFIG = {
}
```

<br>

#### 1.3.2. Change Netbox '**[settings.py](https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/settings.py)**' to include Proxbox Template directory

> Probably on the next release of Netbox, it will not be necessary to make the configuration below! As the [Pull Request #8733](https://github.com/netbox-community/netbox/pull/8734) got merged to develop branch

Edit **/opt/netbox/netbox/netbox** and find TEMPLATE_DIR section

<div align=center>

### How it is configured by default (Netbox >= v3.2.0):
</div>

```python
TEMPLATES_DIR = BASE_DIR + '/templates'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATES_DIR],
'APP_DIRS': True,
'OPTIONS': {
'builtins': [
'utilities.templatetags.builtins.filters',
'utilities.templatetags.builtins.tags',
],
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.template.context_processors.media',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'netbox.context_processors.settings_and_registry',
],
},
},
]
```

<br>

<div align=center>

### How it MUST be configured to Proxbox work:
</div>

```python
TEMPLATES_DIR = BASE_DIR + '/templates'

# PROXBOX CUSTOM TEMPLATE
PROXBOX_TEMPLATE_DIR = BASE_DIR + '/netbox-proxbox/netbox_proxbox/templates/netbox_proxbox'

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATES_DIR, PROXBOX_TEMPLATE_DIR], # <--- IMPORTANT
# The Parameters below is equal to default Netbox config
'APP_DIRS': True,
'OPTIONS': {
'builtins': [
'utilities.templatetags.builtins.filters',
'utilities.templatetags.builtins.tags',
],
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.template.context_processors.media',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'netbox.context_processors.settings_and_registry',
],
},
},
]
```

### Example of error if not configuring the code above on `settings.py`
![image](https://user-images.githubusercontent.com/24397251/167919319-00c67a81-0679-4114-a66d-3e294b3ae28c.png)

I did it because I had to change the **base/layout.html** from Netbox, since there is no **Jinja2 block** to fill with custom information into the **footer HTML tag**

---

### 1.4. Run Database Migrations

```
(venv) $ cd /opt/netbox/netbox/
(venv) $ python3 manage.py migrate
```

---

### 1.5. Restart WSGI Service

Restart the WSGI service to load the new plugin:
Expand Down Expand Up @@ -190,7 +302,7 @@ The following options are available:
To get Proxmox ID, Node and Type information, is necessary to configure Custom Fields.
Below the parameters needed to make it work:

---
<br>

### 3.1. Custom Field Configuration

Expand All @@ -206,7 +318,7 @@ Optional values (may be different)
- [Custom Field] **Label:** [Proxmox] ID
- [Custom Field] **Description:** Proxmox VM/CT ID

---
<br>

#### 3.1.2. Proxmox Node

Expand All @@ -219,7 +331,7 @@ Optional values (may be different)
- [Custom Field] **Label:** [Proxmox] Node
- [Custom Field] **Description:** Proxmox Node (Server)

---
<br>

#### 3.1.3. Proxmox Type (qemu or lxc)

Expand All @@ -233,7 +345,7 @@ Optional values (may be different)
- [Custom Field] **Label:** [Proxmox] Type
- [Custom Field] **Description:** Proxmox type (VM or CT)

---
<br>

### 3.2. Custom Field Example

Expand All @@ -258,9 +370,11 @@ Developing tools for this project based on [ntc-netbox-plugin-onboarding](https:

Issues and pull requests are welcomed.

---

## 6. Roadmap
- Start using custom models to optimize the use of the Plugin and stop using 'Custom Fields'
- Automatically remove Nodes on Netbox when removed on Promox (as it already happens with Virutal Machines and Containers)
- Automatically remove Nodes on Netbox when removed on Promox (as it already happens with Virtual Machines and Containers)
- Add individual update of VM/CT's and Nodes (currently is only possible to update all at once)
- Add periodic update of the whole environment so that the user does not need to manually click the update button.
- Create virtual machines and containers directly on Netbox, having no need to access Proxmox.
Expand Down
2 changes: 1 addition & 1 deletion netbox_proxbox/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class ProxboxConfig(PluginConfig):
name = "netbox_proxbox"
verbose_name = "Proxbox"
description = "Integrates Proxmox and Netbox"
version = "0.0.3"
version = "0.0.5-beta1"
author = "Emerson Felipe (@emersonfelipesp)"
author_email = "[email protected]"
base_url = "proxbox"
Expand Down
33 changes: 18 additions & 15 deletions netbox_proxbox/navigation.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,23 @@

menu_items = (
PluginMenuItem(
link="plugins:netbox_proxbox:proxmoxvm_list",
link_text="Proxmox VM/CT",
buttons=(
PluginMenuButton(
# match the names of the path for create view defined in ./urls.py
link="plugins:netbox_proxbox:proxmoxvm_add",
# text that appears when hovering the ubtton
title="Add",
# font-awesome icon to use
icon_class="mdi mdi-plus-thick", # 'fa fa-plus' didn't work
# defines color button to green
color=ButtonColorChoices.GREEN,
permissions=["netbox_proxbox.add_proxmoxvm"],
),
),
link="plugins:netbox_proxbox:home",
link_text="Home",
),
)

'''
buttons=(
PluginMenuButton(
# match the names of the path for create view defined in ./urls.py
link="plugins:netbox_proxbox:proxmoxvm_add",
# text that appears when hovering the ubtton
title="Add",
# font-awesome icon to use
icon_class="mdi mdi-plus-thick", # 'fa fa-plus' didn't work
# defines color button to green
color=ButtonColorChoices.GREEN,
permissions=["netbox_proxbox.add_proxmoxvm"],
),
),
'''
Loading