Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Building a package of my own

    Scheduled Pinned Locked Moved Off-Topic & Non-Support Discussion
    4 Posts 4 Posters 750 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • O
      Ofloo
      last edited by

      I want to make my own package, and I've been looking through this forum for a thread with like a hello world reference, or some documentation but for some reason not able to find it. Probably my fault for not looking in the right place. Could anyone point me in the right direction?

      GertjanG 1 Reply Last reply Reply Quote 0
      • E
        elvisimprsntr
        last edited by elvisimprsntr

        There are two options:

        1. Custom Widget
        2. Custom Package
        1 Reply Last reply Reply Quote 1
        • GertjanG
          Gertjan @Ofloo
          last edited by

          @Ofloo

          See here : https://forum.netgate.com/user/bmeeks, look for the last 50 or so message he posted. He talks about what it is / needs to build your own packages.

          A pure "GUI" package is easy to build. You have to apply the open source concept (== reading how other packages are created, look at what you download when installing one, how they are put in place, - like Notes, acme.sh, Shellcmd, Cron, etc).

          If your package contains other FreeBSD binaries, things start to ... be less easier.

          No "help me" PM's please. Use the forum, the community will thank you.
          Edit : and where are the logs ??

          1 Reply Last reply Reply Quote 0
          • bmeeksB
            bmeeks
            last edited by bmeeks

            There is a long thread discussing third-party package building here: https://forum.netgate.com/topic/169749/pfsense-compile-requirements-for-3rd-party-software. There are other similar threads in that Development sub-forum.

            Like @Gertjan stated, the best way to start is by analyzing an existing package that is similar in form and function to the one you wish to create. Packages on pfSense are either GUI-only, or they may have both a GUI part and then an underlying binary component that typically runs as a service (or background daemon). In that latter case, the GUI portion of the package is used to create the necessary configuration files and environment for the binary piece and then launches the binary piece as appropriate.

            GUI packages are stored in the FreeBSD-ports repo of pfSense and will have pkg-pfSense- as their name prefix. The package will be stored in the appropriate subfolder of the ports tree (sysutils, security, network, etc.). The base URL for the pfSense FreeBSD-ports repo is on GitHub here: https://github.com/pfsense/FreeBSD-ports.

            GUI portions of packages are typically written in PHP with a sprinkling of JavaScript if needed. There is an old XML framework for creating package GUI templates, but it is used less and less these days. Here is a link to the official package development docs that describe the XML template format: https://docs.netgate.com/pfsense/en/latest/development/develop-packages.html.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post
            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.