{"id":41979,"date":"2025-12-12T15:11:27","date_gmt":"2025-12-12T14:11:27","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=41979"},"modified":"2025-12-12T15:11:29","modified_gmt":"2025-12-12T14:11:29","slug":"what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/","title":{"rendered":"What is Forgejo and getting it up and running on FreeBSD 15"},"content":{"rendered":"\n<p>In recent customer projects I had less to do with PostgreSQL but more with reviewing infrastructures and give recommendations about what and how to improve. In all of those projects <a href=\"https:\/\/about.gitlab.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">GitLab<\/a> is used in one way or the other. Some only use it for managing their code in Git and work on issues, others use pipelines to build their stuff, and others almost use the full set of features. Gitlab is a great product, but sometimes you do not need the full set of features so I started to look for alternatives mostly because of my own interest. One of the more popular choices seemed to be <a href=\"https:\/\/about.gitea.com\/\">Gitea<\/a> but as a <a href=\"https:\/\/blog.gitea.com\/a-message-from-lunny-on-gitea-ltd.-and-the-gitea-project\/\" target=\"_blank\" rel=\"noreferrer noopener\">company was created<\/a> around it, a fork was created and this is <a href=\"https:\/\/forgejo.org\" target=\"_blank\" rel=\"noreferrer noopener\">Forgejo<\/a>. The <a href=\"https:\/\/forgejo.org\/faq\/\" target=\"_blank\" rel=\"noreferrer noopener\">FAQ<\/a> summarizes the most important topics around the project pretty well, so please read it.<\/p>\n\n\n\n<p>As <a href=\"https:\/\/www.freebsd.org\/releases\/15.0R\/announce\/\" target=\"_blank\" rel=\"noreferrer noopener\">FreeBSD 15<\/a> was released on 2. December that&#8217;s the perfect chance to get that up and running there and have a look how it feels like. I am not going into the installation of FreeBSD 15, this really is straight forward. I just want to mention that I opted for the &#8220;packaged base system&#8221; instead of the distributions sets which is currently in tech preview. What that means is that the whole system is installed and managed with packages and you don&#8217;t need <a href=\"https:\/\/man.freebsd.org\/cgi\/man.cgi?freebsd-update\" target=\"_blank\" rel=\"noreferrer noopener\">freebsd-update<\/a> anymore. Although it is still available, it will not work anymore if you try to use it:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,11]; title: ; notranslate\" title=\"\">\nroot@forgejo:~ $ cat \/etc\/os-release \nNAME=FreeBSD\nVERSION=&quot;15.0-RELEASE&quot;\nVERSION_ID=&quot;15.0&quot;\nID=freebsd\nANSI_COLOR=&quot;0;31&quot;\nPRETTY_NAME=&quot;FreeBSD 15.0-RELEASE&quot;\nCPE_NAME=&quot;cpe:\/o:freebsd:freebsd:15.0&quot;\nHOME_URL=&quot;https:\/\/FreeBSD.org\/&quot;\nBUG_REPORT_URL=&quot;https:\/\/bugs.FreeBSD.org\/&quot;\nroot@forgejo:~ $ freebsd-update fetch\nfreebsd-update is incompatible with the use of packaged base.  Please see\nhttps:\/\/wiki.freebsd.org\/PkgBase for more information.\n\n<\/pre><\/div>\n\n\n<p>Coming back to Forgejo: On FreeBSD this is available as a package, so you can just go ahead and install it:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,6,25]; title: ; notranslate\" title=\"\">\nroot@forgejo:~$ pkg search forgejo\nforgejo-13.0.2_1               Compact self-hosted Git forge\nforgejo-act_runner-9.1.0_2     Act runner is a runner for Forgejo based on the Gitea Act runner\nforgejo-lts-11.0.7_1           Compact self-hosted Git forge\nforgejo7-7.0.14_3              Compact self-hosted Git service\nroot@forgejo:~ $ pkg install forgejo\nUpdating FreeBSD-ports repository catalogue...\nFreeBSD-ports repository is up to date.\nUpdating FreeBSD-ports-kmods repository catalogue...\nFreeBSD-ports-kmods repository is up to date.\nUpdating FreeBSD-base repository catalogue...\nFreeBSD-base repository is up to date.\nAll repositories are up to date.\nThe following 32 package(s) will be affected (of 0 checked):\n\nNew packages to be INSTALLED:\n        FreeBSD-clibs-lib32: 15.0 &#x5B;FreeBSD-base]\n        brotli: 1.1.0,1 &#x5B;FreeBSD-ports]\n...\nNumber of packages to be installed: 32\n\nThe process will require 472 MiB more space.\n100 MiB to be downloaded.\n\nProceed with this action? &#x5B;y\/N]: y\nMessage from python311-3.11.13_1:\n\n--\nNote that some standard Python modules are provided as separate ports\nas they require additional dependencies. They are available as:\n\npy311-gdbm       databases\/py-gdbm@py311\npy311-sqlite3    databases\/py-sqlite3@py311\npy311-tkinter    x11-toolkits\/py-tkinter@py311\n=====\nMessage from git-2.51.0:\n\n--\nIf you installed the GITWEB option please follow these instructions:\n\nIn the directory \/usr\/local\/share\/examples\/git\/gitweb you can find all files to\nmake gitweb work as a public repository on the web.\n\nAll you have to do to make gitweb work is:\n1) Please be sure you&#039;re able to execute CGI scripts in\n   \/usr\/local\/share\/examples\/git\/gitweb.\n2) Set the GITWEB_CONFIG variable in your webserver&#039;s config to\n   \/usr\/local\/etc\/git\/gitweb.conf. This variable is passed to gitweb.cgi.\n3) Restart server.\n\n\nIf you installed the CONTRIB option please note that the scripts are\ninstalled in \/usr\/local\/share\/git-core\/contrib. Some of them require\nother ports to be installed (perl, python, etc), which you may need to\ninstall manually.\n=====\nMessage from git-lfs-3.6.1_8:\n\n--\nTo get started with Git LFS, the following commands can be used:\n\n  1. Setup Git LFS on your system. You only have to do this once per\n     repository per machine:\n\n     $ git lfs install\n\n  2. Choose the type of files you want to track, for examples all ISO\n     images, with git lfs track:\n\n     $ git lfs track &quot;*.iso&quot;\n\n  3. The above stores this information in gitattributes(5) files, so\n     that file needs to be added to the repository:\n\n     $ git add .gitattributes\n\n  4. Commit, push and work with the files normally:\n\n     $ git add file.iso\n     $ git commit -m &quot;Add disk image&quot;\n     $ git push\n=====\nMessage from forgejo-13.0.2_1:\n\n--\nBefore starting forgejo for the first time, you must set a number of\nsecrets in the configuration file. For your convenience, a sample file\nhas been copied to \/usr\/local\/etc\/forgejo\/conf\/app.ini.\n\nYou need to replace every occurence of CHANGE_ME in the file with\nsensible values. Please refer to the official documentation at\nhttps:\/\/forgejo.org for details.\n\nYou will also likely need to create directories for persistent storage.\nRun\n    su -m git -c &#039;forgejo doctor check&#039;\nto check if all prerequisites have been met.\n<\/pre><\/div>\n\n\n<p>What I really like with the FreeBSD packages is, that they usually give clear instructions on what to do. We&#8217;ll go with the web-based installer, so:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,2,3,5,7]; title: ; notranslate\" title=\"\">\nroot@forgejo:~ $ chown git:git \/usr\/local\/etc\/forgejo\/conf\nroot@forgejo:~ $ rm \/usr\/local\/etc\/forgejo\/conf\/app.ini\nroot@forgejo:~ $ service -l | grep for\nforgejo\nroot@forgejo:~ $ service forgejo enable\nforgejo enabled in \/etc\/rc.conf\nroot@forgejo:~ $ service forgejo start\n2025\/12\/12 14:16:42 ...etting\/repository.go:318:loadRepositoryFrom() &#x5B;W] SCRIPT_TYPE &quot;bash&quot; is not on the current PATH. Are you sure that this is the correct SCRIPT_TYPE?\n\n&#x5B;1] Check paths and basic configuration\n - &#x5B;E] Failed to find configuration file at &#039;\/usr\/local\/etc\/forgejo\/conf\/app.ini&#039;.\n - &#x5B;E] If you&#039;ve never ran Forgejo yet, this is normal and &#039;\/usr\/local\/etc\/forgejo\/conf\/app.ini&#039; will be created for you on first run.\n - &#x5B;E] Otherwise check that you are running this command from the correct path and\/or provide a `--config` parameter.\n - &#x5B;E] Cannot proceed without a configuration file\nFAIL\nCommand error: stat \/usr\/local\/etc\/forgejo\/conf\/app.ini: no such file or directory\n\n2025\/12\/12 14:16:42 ...etting\/repository.go:318:loadRepositoryFrom() &#x5B;W] SCRIPT_TYPE &quot;bash&quot; is not on the current PATH. Are you sure that this is the correct SCRIPT_TYPE?\n\n&#x5B;1] Check paths and basic configuration\n - &#x5B;E] Failed to find configuration file at &#039;\/usr\/local\/etc\/forgejo\/conf\/app.ini&#039;.\n - &#x5B;E] If you&#039;ve never ran Forgejo yet, this is normal and &#039;\/usr\/local\/etc\/forgejo\/conf\/app.ini&#039; will be created for you on first run.\n - &#x5B;E] Otherwise check that you are running this command from the correct path and\/or provide a `--config` parameter.\n - &#x5B;E] Cannot proceed without a configuration file\nFAIL\nCommand error: stat \/usr\/local\/etc\/forgejo\/conf\/app.ini: no such file or directory\n<\/pre><\/div>\n\n\n<p>Seems bash is somehow expected, but this is not available right now:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\nroot@forgejo:~ $ which bash\nroot@forgejo:~ $ \n<\/pre><\/div>\n\n\n<p>Once more:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,2,4,13]; title: ; notranslate\" title=\"\">\nroot@forgejo:~ $ pkg install bash\nroot@forgejo:~ $ service forgejo stop\nStopping forgejo.\nroot@forgejo:~ $ service forgejo start\n\n&#x5B;1] Check paths and basic configuration\n - &#x5B;E] Failed to find configuration file at &#039;\/usr\/local\/etc\/forgejo\/conf\/app.ini&#039;.\n - &#x5B;E] If you&#039;ve never ran Forgejo yet, this is normal and &#039;\/usr\/local\/etc\/forgejo\/conf\/app.ini&#039; will be created for you on first run.\n - &#x5B;E] Otherwise check that you are running this command from the correct path and\/or provide a `--config` parameter.\n - &#x5B;E] Cannot proceed without a configuration file\nFAIL\nCommand error: stat \/usr\/local\/etc\/forgejo\/conf\/app.ini: no such file or directory\nroot@forgejo:~ $ service forgejo status\nforgejo is running as pid 3448.\n<\/pre><\/div>\n\n\n<p>The web installer is available on port 3000 and you can choose between the usual database backends:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"433\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805-1024x433.png\" alt=\"\" class=\"wp-image-41996\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805-1024x433.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805-300x127.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805-768x325.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805.png 1332w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To keep it simple I went with SQLite3, kept everything at the default and provided the Administrator information further down the screen. Before the installer succeeded I had to create these two directories:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; highlight: [1,2,3,4]; title: ; notranslate\" title=\"\">\nroot@forgejo:~ $ mkdir \/usr\/local\/share\/forgejo\/data\/\nroot@forgejo:~ $ chown git:git \/usr\/local\/share\/forgejo\/data\/\nroot@forgejo:~ $ mkdir \/usr\/local\/share\/forgejo\/log\nroot@forgejo:~ $ chown git:git \/usr\/local\/share\/forgejo\/log\n<\/pre><\/div>\n\n\n<p>Once that was done it went fine and this is the welcome screen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"233\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_144416-1024x233.png\" alt=\"\" class=\"wp-image-41998\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_144416-1024x233.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_144416-300x68.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_144416-768x174.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_144416-1536x349.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_144416.png 1902w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>As with the other tools in that area there are the common sections like &#8220;Issues&#8221;, &#8220;Pull requests&#8221;, and &#8220;Milestones&#8221;. <\/p>\n\n\n\n<p>In the next post we&#8217;re going to create an organization, a repository and try to create a simple, how GitLab calls it, pipeline.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In recent customer projects I had less to do with PostgreSQL but more with reviewing infrastructures and give recommendations about what and how to improve. In all of those projects GitLab is used in one way or the other. Some only use it for managing their code in Git and work on issues, others use [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,198,368,1320],"tags":[3777,2256],"type_dbi":[3778,3471,2749],"class_list":["post-41979","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-database-management","category-development-performance","category-devops","tag-forgejo","tag-freebsd","type-forgejo","type-freebsd","type-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>What is Forgejo and getting it up and running on FreeBSD 15 - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is Forgejo and getting it up and running on FreeBSD 15\" \/>\n<meta property=\"og:description\" content=\"In recent customer projects I had less to do with PostgreSQL but more with reviewing infrastructures and give recommendations about what and how to improve. In all of those projects GitLab is used in one way or the other. Some only use it for managing their code in Git and work on issues, others use [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-12T14:11:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-12T14:11:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1332\" \/>\n\t<meta property=\"og:image:height\" content=\"563\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"What is Forgejo and getting it up and running on FreeBSD 15\",\"datePublished\":\"2025-12-12T14:11:27+00:00\",\"dateModified\":\"2025-12-12T14:11:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/\"},\"wordCount\":419,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805-1024x433.png\",\"keywords\":[\"Forgejo\",\"FreeBSD\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Database management\",\"Development &amp; Performance\",\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/\",\"name\":\"What is Forgejo and getting it up and running on FreeBSD 15 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805-1024x433.png\",\"datePublished\":\"2025-12-12T14:11:27+00:00\",\"dateModified\":\"2025-12-12T14:11:29+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805.png\",\"width\":1332,\"height\":563},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is Forgejo and getting it up and running on FreeBSD 15\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is Forgejo and getting it up and running on FreeBSD 15 - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/","og_locale":"en_US","og_type":"article","og_title":"What is Forgejo and getting it up and running on FreeBSD 15","og_description":"In recent customer projects I had less to do with PostgreSQL but more with reviewing infrastructures and give recommendations about what and how to improve. In all of those projects GitLab is used in one way or the other. Some only use it for managing their code in Git and work on issues, others use [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/","og_site_name":"dbi Blog","article_published_time":"2025-12-12T14:11:27+00:00","article_modified_time":"2025-12-12T14:11:29+00:00","og_image":[{"width":1332,"height":563,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805.png","type":"image\/png"}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"What is Forgejo and getting it up and running on FreeBSD 15","datePublished":"2025-12-12T14:11:27+00:00","dateModified":"2025-12-12T14:11:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/"},"wordCount":419,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805-1024x433.png","keywords":["Forgejo","FreeBSD"],"articleSection":["Database Administration &amp; Monitoring","Database management","Development &amp; Performance","DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/","url":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/","name":"What is Forgejo and getting it up and running on FreeBSD 15 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805-1024x433.png","datePublished":"2025-12-12T14:11:27+00:00","dateModified":"2025-12-12T14:11:29+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Screenshot_20251212_143805.png","width":1332,"height":563},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/what-is-forgejo-and-getting-it-up-and-running-on-freebsd-15\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is Forgejo and getting it up and running on FreeBSD 15"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/41979","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=41979"}],"version-history":[{"count":9,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/41979\/revisions"}],"predecessor-version":[{"id":42006,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/41979\/revisions\/42006"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=41979"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=41979"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=41979"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=41979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}