Changes for page How to set up a gitea docker instance
Last modified by Alexandru Pentilescu on 2024/07/16 22:44
From version 2.1
edited by Alexandru Pentilescu
on 2024/07/16 20:56
on 2024/07/16 20:56
Change comment:
There is no comment for this version
To version 6.1
edited by Alexandru Pentilescu
on 2024/07/16 21:25
on 2024/07/16 21:25
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,6 +1,9 @@ 1 -{{box cssClass="floatinginfobox" title="**Contents**"}}{{toc /}}{{/box}} 1 +{{box cssClass="floatinginfobox" title="**Contents**"}} 2 +{{toc /}} 3 +{{/box}} 2 2 3 3 = Basic installation = 6 + 4 4 To setup a gitea server using docker, the following docker-compose.yml file shall be used: 5 5 6 6 {{code language="yaml"}} ... ... @@ -40,3 +40,112 @@ 40 40 networks: 41 41 - gitea 42 42 {{/code}} 46 + 47 +What the above docker-compose configuration will do is that it will, in essence, create two, always on, services, that will forever be restarted: a mariadb database server that will write all of its data to a local "db" directory, and another web service that will server as the main git server and the web server alongside it. 48 + 49 +Before starting the docker services, please create the necessary resources first. 50 + 51 += Create the required local directories to store the data in = 52 + 53 +Do a simple command to create the necessary directories: 54 + 55 +{{code language="bash"}}mkdir data db{{/code}} 56 +Backing up just these two directories should, in theory, be enough to allow for full restoration of all git repository resources into the future. **WARNING: This has not been tested yet!!!** 57 + 58 += Create a separate git user to login into via SSH = 59 + 60 +Creating a separate user, technically, is unnecessary, but it makes the configuration more conventional. 61 + 62 +{{code language="bash"}} 63 +useradd -m -u 1002 git 64 +{{/code}} 65 + 66 +Assuming the 1002 UID is already assigned to a different user, feel free to use a different UID (**be sure to update the yaml configuration with the proper user ID, then**). 67 + 68 +Once this configuration has been done, go ahead and generate an /home/git/.ssh/ directory for the user to have. Be sure to chown this specific directory to the git user as appropriate: 69 + 70 +{{code language="bash"}} 71 +chown git:git -R /home/git/.ssh/ 72 +chmod 700 /home/git/.ssh/ 73 +{{/code}} 74 + 75 +Once all these steps are done, you can proceed to the next step. 76 + 77 += Spin up a container from the docker image = 78 + 79 +{{code language="bash"}} 80 +docker-compose up -d 81 +{{/code}} 82 + 83 +Had all the necessary steps been done properly, this should yield a fully functional container. If there are any errors encountered by this point, please fix them before proceeding. 84 + 85 += Set up a proper nginx endpoint for the docker service = 86 + 87 +Deploy the following configuration to make the container accessible to the outside world: 88 + 89 +{{code language="nginx"}} 90 +server { 91 + server_name git.transistor.one; 92 + 93 + listen [::]:443 http2 ssl; # managed by Certbot 94 + listen 443 http2 ssl; # managed by Certbot 95 + # http2 on; 96 + 97 + include /etc/nginx/snippets/ssl.conf; 98 + 99 + location / { 100 + proxy_pass http://localhost:3000; 101 + } 102 +} 103 +{{/code}} 104 + 105 +Once this is done, restart nginx: 106 + 107 +{{code language="bash"}} 108 +systemctl restart nginx 109 +{{/code}} 110 + 111 +Confirm that the web page is accessible at the git.transistor.one URL. In case it's not, fix it. 112 + 113 +# Customize Gitea configuration # 114 + 115 +Assuming you do need to change a couple of settings, gitea will have generated a configuration file at ./data/gitea/conf/app.ini. 116 + 117 +Make whatever changes you need to make in this file. 118 + 119 +The changes will take effect only after stopping and restarting the container, though. 120 + 121 +Notable changes that are worth mentioning is setting up an SMTP endpoint: 122 + 123 +{{code language="ini"}} 124 +[mailer] 125 +ENABLED = true 126 +PROTOCOL = smtp+starttls 127 +HOST = mail.transistor.one:587 128 +FROM = gitea@transistor.one 129 +USER = 130 +PASSWD = 131 +{{/code}} 132 + 133 +And, of course, the server hostname configuration: 134 + 135 +{{code language="ini"}} 136 +[server] 137 +APP_DATA_PATH = /data/gitea 138 +DOMAIN = transistor.one 139 +SSH_DOMAIN = transistor.one 140 +HTTP_PORT = 3000 141 +ROOT_URL = https://git.transistor.one/ 142 +DISABLE_SSH = false 143 +SSH_PORT = 22 144 +SSH_LISTEN_PORT = 22 145 +{{/code}} 146 + 147 +Oh and, almost forgot, disable user registrations by setting 148 + 149 +{{code language="ini"}} 150 +[service] 151 +DISABLE_REGISTRATION = true 152 +{{/code}} 153 + 154 +If you need more configuration information, check [[this>>https://docs.gitea.com/administration/config-cheat-sheet]] out.