You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

from-source.en-us.md 5.7KB


date: “2016-12-01T16:00:00+02:00” title: “Installation from source” slug: “install-from-source” weight: 10 toc: true draft: false menu: sidebar:

parent: "installation"
name: "From source"
weight: 30
identifier: "install-from-source"

Installation from source

You should install go and set up your go environment correctly. In particular, it is recommended to set the $GOPATH environment variable and to add the go bin directory or directories ${GOPATH//://bin:}/bin to the $PATH. See the Go wiki entry for GOPATH.

Next, install Node.js with npm which is required to build the JavaScript and CSS files. The minimum supported Node.js version is 10 and the latest LTS version is recommended.

Note: When executing make tasks that require external tools, like make misspell-check, Gitea will automatically download and build these as necessary. To be able to use these, you must have the "$GOPATH/bin" directory on the executable path. If you don’t add the go bin directory to the executable path, you will have to manage this yourself.

Note 2: Go version 1.11 or higher is required. However, it is recommended to obtain the same version as our continuous integration, see the advice given in

  • go 1.11.0 or higher, see here
  • node 10.0.0 or higher with npm, see here
  • make, see
  • bindata: Build a single monolithic binary, with all assets included.
  • sqlite sqlite_unlock_notify: Enable support for a SQLite3 database. Suggested only for tiny installations.
  • pam: Enable support for PAM (Linux Pluggable Authentication Modules). Can be used to authenticate local users or extend authentication to methods available to PAM.
  • Bundling assets into the binary using the bindata build tag can make development and testing easier, but is not ideal for a production deployment. To include assets, add the bindata tag:

    TAGS="bindata" make build
    

    WARNING: generate method is deprecated and using it may cause build to miss some static files.

    In the default release build of our continuous integration system, the build tags are: TAGS="bindata sqlite sqlite_unlock_notify". The simplest recommended way to build from source is therefore:

    TAGS="bindata sqlite sqlite_unlock_notify" make build
    

    Test

    After following the steps above, a gitea binary will be available in the working directory. It can be tested from this directory or moved to a directory with test data. When Gitea is launched manually from command line, it can be killed by pressing Ctrl + C.

    ./gitea web
    

    Changing the default CustomPath, CustomConf and AppWorkPath

    Gitea will search for a number of things from the CustomPath. By default this is the custom/ directory in the current working directory when running Gitea. It will also look for its configuration file CustomConf in $CustomPath/conf/app.ini, and will use the current working directory as the relative base path AppWorkPath for a number configurable values.

    These values, although useful when developing, may conflict with downstream users preferences.

    One option is to use a script file to shadow the gitea binary and create an appropriate environment before running Gitea. However, when building you can change these defaults using the LDFLAGS environment variable for make. The appropriate settings are as follows

    • To set the CustomPath use LDFLAGS="-X \"code.gitea.io/gitea/modules/setting.CustomPath=custom-path\""
    • For CustomConf you should use -X \"code.gitea.io/gitea/modules/setting.CustomConf=conf.ini\"
    • For AppWorkPath you should use -X \"code.gitea.io/gitea/modules/setting.AppWorkPath=working-path\"

    Add as many of the strings with their preceding -X to the LDFLAGS variable and run make build with the appropriate TAGS as above.

    Running gitea help will allow you to review what the computed settings will be for your gitea.