Last modified by Alexandru Pentilescu on 2024/07/16 22:44

From version 1.1
edited by Alexandru Pentilescu
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
Change comment: There is no comment for this version

Summary

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.