AI prompts
base on # pfSense to OPNSense Config File Converter
Used to convert a pfSense configuration backup to OPNSense
## Other
* For everyone that has stared this, please use issues to list items you wanted converted. otherwise I'm going to go in a random order that makes no sense.
## Description
This project was started due to Netgate's decision to remove the free home & lab pfSense+ licensing that I was running. I could convert my home pfSense+ instance to OPNSense without issue, but I have multiple ones to do so I figured I'd work on automating it and hope others can benefit from it.
* Known working items
* Interfaces (WAN, LAN, OPT(1-9))
* Users, prompts for password, asks to convert admin to root
* DHCP servers, including static leases (LAN, OPT(1-9))
* Filters
* NAT
* Basic system data
* Default dashboard
* Default sysctl values
* Known items to work on (not a priority list)
* VLANs
* OpenVPN
* IPSEC
* Aliases
* LAGGs
## Getting Started
1. Extract the zip file
2. Backup your pfSense installation, do not backup package information (not converted so not needed)
3. Copy pfSense configuration file to working folder named pfSense.xml
4. Run the executable
1. For Windows just run as is
2. For Linux or macOS follow below
1. Run chmod +x pfSense-to-OPNSense-Config-File-Converter to make executable
2. Execute with ./pfSense-to-OPNSense-Config-File-Converter
5. Follow the prompts
6. Install OPNSense
7. Skip the first run wizard in OPNSense
8. Restore the OPNSense config file you just generated
9. Celebrate
### Dependencies
* pfSense configuration backup file
## Authors
Contributors names and contact info
Shaun McCloud
https://smccloud.com
## Version History
* 0.1
* Initial release, there may (probably are) bugs
## License
This project is licensed under the MIT License - see the LICENSE.txt file for details", Assign "at most 3 tags" to the expected json: {"id":"4423","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"