2017-11-27 00:44:32 +03:00
---
date: "2017-07-21T12:00:00+02:00"
title: "Run as service in Linux"
slug: "linux-service"
2023-07-26 05:00:14 +03:00
sidebar_position: 40
2020-12-09 09:47:06 +03:00
toc: false
2017-11-27 00:44:32 +03:00
draft: false
Refactor docs (#23752)
This was intended to be a small followup for
https://github.com/go-gitea/gitea/pull/23712, but...here we are.
1. Our docs currently use `slug` as the entire URL, which makes
refactoring tricky (see https://github.com/go-gitea/gitea/pull/23712).
Instead, this PR attempts to make future refactoring easier by using
slugs as an extension of the section. (Hugo terminology)
- What the above boils down to is this PR attempts to use directory
organization as URL management. e.g. `usage/comparison.en-us.md` ->
`en-us/usage/comparison/`, `usage/packages/overview.en-us.md` ->
`en-us/usage/packages/overview/`
- Technically we could even remove `slug`, as Hugo defaults to using
filename, however at least with this PR it means `slug` only needs to be
the name for the **current file** rather than an entire URL
2. This PR adds appropriate aliases (redirects) for pages, so anything
on the internet that links to our docs should hopefully not break.
3. A minor nit I've had for a while, renaming `seek-help` to `support`.
It's a minor thing, but `seek-help` has a strange connotation to it.
4. The commits are split such that you can review the first which is the
"actual" change, and the second is added redirects so that the first
doesn't break links elsewhere.
---------
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2023-04-28 06:33:41 +03:00
aliases:
- /en-us/linux-service
2017-11-27 00:44:32 +03:00
menu:
sidebar:
parent: "installation"
name: "Linux service"
2023-07-26 05:00:14 +03:00
sidebar_position: 40
2017-11-27 00:44:32 +03:00
identifier: "linux-service"
---
2020-01-08 19:33:13 +03:00
### Run Gitea as Linux service
2017-11-27 00:44:32 +03:00
2020-01-08 19:33:13 +03:00
You can run Gitea as service, using either systemd or supervisor. The steps below tested on Ubuntu 16.04, but those should work on any Linux distributions (with little modification).
2018-01-09 01:48:42 +03:00
2020-01-08 19:33:13 +03:00
#### Using systemd
2017-11-27 00:44:32 +03:00
2021-12-24 06:56:57 +03:00
Copy the sample [gitea.service ](https://github.com/go-gitea/gitea/blob/main/contrib/systemd/gitea.service ) to `/etc/systemd/system/gitea.service` , then edit the file with your favorite editor.
2017-11-27 00:44:32 +03:00
2018-01-09 01:48:42 +03:00
Uncomment any service that needs to be enabled on this host, such as MySQL.
2017-11-27 00:44:32 +03:00
2018-01-09 01:48:42 +03:00
Change the user, home directory, and other required startup values. Change the
PORT or remove the -p flag if default port is used.
2017-11-27 00:44:32 +03:00
2019-03-10 00:15:45 +03:00
Enable and start Gitea at boot:
2022-07-28 04:22:47 +03:00
2017-11-27 00:44:32 +03:00
```
2018-01-09 01:48:42 +03:00
sudo systemctl enable gitea
2017-11-27 00:44:32 +03:00
sudo systemctl start gitea
```
2020-01-08 19:33:13 +03:00
If you have systemd version 220 or later, you can enable and immediately start Gitea at once by:
2022-07-28 04:22:47 +03:00
2020-01-08 19:33:13 +03:00
```
sudo systemctl enable gitea --now
```
2017-11-27 00:44:32 +03:00
2018-01-09 01:48:42 +03:00
#### Using supervisor
2017-11-27 00:44:32 +03:00
2018-01-09 01:48:42 +03:00
Install supervisor by running below command in terminal:
2022-07-28 04:22:47 +03:00
2017-11-27 00:44:32 +03:00
```
sudo apt install supervisor
2018-01-09 01:48:42 +03:00
```
2017-11-27 00:44:32 +03:00
2018-01-09 01:48:42 +03:00
Create a log dir for the supervisor logs:
2022-07-28 04:22:47 +03:00
2017-11-27 00:44:32 +03:00
```
2019-03-10 00:15:45 +03:00
# assuming Gitea is installed in /home/git/gitea/
2017-11-27 00:44:32 +03:00
mkdir /home/git/gitea/log/supervisor
2018-01-09 01:48:42 +03:00
```
2017-11-27 00:44:32 +03:00
2018-01-09 01:48:42 +03:00
Append the configuration from the sample
2021-12-24 06:56:57 +03:00
[supervisord config ](https://github.com/go-gitea/gitea/blob/main/contrib/supervisor/gitea ) to `/etc/supervisor/supervisord.conf` .
2017-11-27 00:44:32 +03:00
2021-12-24 06:56:57 +03:00
Using your favorite editor, change the user (`git`) and home
(`/home/git`) settings to match the deployment environment. Change the PORT
2020-01-08 19:33:13 +03:00
or remove the -p flag if default port is used.
2017-11-27 00:44:32 +03:00
2018-01-09 01:48:42 +03:00
Lastly enable and start supervisor at boot:
2022-07-28 04:22:47 +03:00
2017-11-27 00:44:32 +03:00
```
2018-01-09 01:48:42 +03:00
sudo systemctl enable supervisor
2017-11-27 00:44:32 +03:00
sudo systemctl start supervisor
```
2020-01-08 19:33:13 +03:00
If you have systemd version 220 or later, you can enable and immediately start supervisor by:
2022-07-28 04:22:47 +03:00
2020-01-08 19:33:13 +03:00
```
sudo systemctl enable supervisor --now
```