<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gitea - Hard Wired</title>
	<atom:link href="https://www.hardwired.dev/tag/gitea/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hardwired.dev</link>
	<description></description>
	<lastBuildDate>Sun, 15 Sep 2024 22:23:58 +0000</lastBuildDate>
	<language>cs</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://www.hardwired.dev/wp-content/uploads/2022/10/android-chrome-256x256-1-150x150.png</url>
	<title>gitea - Hard Wired</title>
	<link>https://www.hardwired.dev</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Gitea a první soukromý repozitář</title>
		<link>https://www.hardwired.dev/2024/09/16/gitea-a-prvni-soukromy-repozitar/</link>
		
		<dc:creator><![CDATA[John Doe]]></dc:creator>
		<pubDate>Sun, 15 Sep 2024 22:15:31 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gitea]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[self-hosted]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[windows]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2348</guid>

					<description><![CDATA[<p>Článek navazuje na Gitea v Dockeru s daty na Synology a Gitea na veřejné subdoméně. Tentokrát si ukážeme, jak vytvořit &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2024/09/16/gitea-a-prvni-soukromy-repozitar/">Gitea a první soukromý repozitář</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>Článek navazuje na <a href="https://www.hardwired.dev/2024/09/14/gitea-v-dockeru-s-daty-na-synology/">Gitea v Dockeru s daty na Synology</a> a <a href="https://www.hardwired.dev/2024/09/15/gitea-na-verejne-subdomene/">Gitea na veřejné subdoméně</a>. Tentokrát si ukážeme, jak vytvořit nový soukromý repozitář a posílat do něj změny.</p>
<h1>Předpoklady</h1>
<ul>
<li>Máme funkční Giteu na vlastní subdoméně, do které se dokážeme přihlásit</li>
<li>Byly provedeny všechny kroky z předchozích návodů</li>
<li>Článek se zaměřuje na Windows ale na Linuxu to bude to samé nebo hodně podobné</li>
<li>Na počítači máme funkční SSH a <a href="https://git-scm.com/">GIT</a>.</li>
</ul>
<h1>Vytvoření soukromého repozitáře</h1>
<p>Přihlásíme se do naší Gitey. <code>Pluskem</code> zvolíme nový repozitář. Zadáme název repozitáře, <code>soukromy-repo-na-smazani</code>. Vybereme <code>Nastavit repozitář jako soukromý</code> a potvrdíme. Vytvoří se prázdný repozitář.</p>
<h1>Vytvoření SSH klíče</h1>
<p>Pro komunikaci s repozitářem budeme používat <a href="https://cs.wikipedia.org/wiki/Secure_Shell">SSH</a>. Budeme muset vytvořit pár klíčů, soukromý a veřejný. Soukromý bude u nás na počítači a veřejný budeme nahrajeme k repozitáři, jako přístupový.</p>
<p>Ujistíme se že v <code>c:\Users\&lt;username&gt;</code> máme složku <code>.ssh</code>. Poté v terminálu zadáme příkaz na vygenerování klíče pro přístup do Gitea. </p>
<p><code>ssh-keygen -t rsa -b 4096 -C &quot;&lt;váš email&gt;&quot; -f ~/.ssh/gitea-example-com</code></p>
<p>To ve složce <code>.ssh</code> vytvoří dva soubory. <code>gitea-example-com</code> a <code>gitea-example-com.pub</code>. Ten druhý musíme nahrát k repozitáři.</p>
<h1>Přidání klíče do Gitea repozitáře</h1>
<p>Otevřeme si repozitář. <code>Nastavení &gt; Klíče pro nasazení &gt; Přidat klič pro nasazení</code>. Pojmenujeme si ho, například <code>Domácí klíč</code>. A obsah <code>gitea-example-com.pub</code> zkopírujeme do pole <code>Obsah</code>. Nesmíme zapomenout zaškrtnout volbu <code>Povolit zápis</code> a potvrdit.</p>
<h1>Nastavení SSH na počítači</h1>
<p>Pokud ve složce <code>c:\Users\&lt;username&gt;\.ssh</code> nemáte soubor <code>config</code>, vytvořte ho a přidejte následující.</p>
<pre><code>Host gitea.example.com
  HostName gitea.example.com
  User git
  Port 222
  IdentityFile c:\Users\&lt;username&gt;\.ssh\gitea-example-com
  IdentitiesOnly yes</code></pre>
<p>Pro hosta <code>gitea.example.com</code> se nastaví odpovídající <code>host name</code>, <code>uživatel</code>, <code>port</code> pro připojení a <code>cesta k privátnímu klíči</code>. Volba <code>IdentitiesOnly</code> zajistí, že pro konkrétního hosta se použijí parametry, které jsou nastaveny.</p>
<h1>Připojení repozitáře</h1>
<p>Buď můžete připojit už existující repozitář z vašeho počítače, nebo vytvoříte nový. Vytvoříme nový.</p>
<p>Vytvořte složku kde bude nový repozitář. Obecně se pojmenuje názvem repozitáře co jsme vytvořili na naší Gitea.</p>
<pre><code class="language-shell">mkdir soukromy-repo-na-smazani</code></pre>
<p>Přesuneme se do něj.</p>
<pre><code class="language-shell">cd soukromy-repo-na-smazani</code></pre>
<p>Inicializujeme prázdný repozitář.</p>
<pre><code class="language-shell">git init</code></pre>
<p>Vytvoříme první soubor <code>README.md</code>.</p>
<pre><code class="language-shell">touch README.md</code></pre>
<p>Vytvoříme hlavní větev <code>main</code>.</p>
<pre><code class="language-shell">git checkout -b main</code></pre>
<p>Přidáme soubor <code>README.md</code> do <code>git</code> repozitáře.</p>
<pre><code class="language-shell">git add README.md</code></pre>
<p>Vytvoříme první <code>commit</code>.</p>
<pre><code class="language-shell">git commit -m &quot;První commit&quot;</code></pre>
<p>Napojíme náš repozitář z Gitea.</p>
<pre><code class="language-shell">git remote add origin git@gitea.example.com:&lt;gitea username&gt;/soukromy-repo-na-smazani.git</code></pre>
<p>Odešleme změny do vzdáleného repozitáře.</p>
<pre><code class="language-shell">git push -u origin main</code></pre>
<p>Když se nyní podíváme do repozitáře na <code>gitea.example.com</code>, uvidíme náš první <code>commit</code>.</p>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2024%2F09%2F16%2Fgitea-a-prvni-soukromy-repozitar%2F&#038;via=hessevalentino" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2024/09/16/gitea-a-prvni-soukromy-repozitar/">Gitea a první soukromý repozitář</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Gitea na veřejné subdoméně</title>
		<link>https://www.hardwired.dev/2024/09/15/gitea-na-verejne-subdomene/</link>
		
		<dc:creator><![CDATA[John Doe]]></dc:creator>
		<pubDate>Sun, 15 Sep 2024 18:55:58 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[container]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gitea]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[portainer]]></category>
		<category><![CDATA[reverse-proxy]]></category>
		<category><![CDATA[self-hosted]]></category>
		<category><![CDATA[subdomain]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2345</guid>

					<description><![CDATA[<p>Volné pokračování Gitea v Dockeru s daty na Synology. Tentokrát nastavíme aby nám naše self-hostovaná Gitea jela na naší veřejné &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2024/09/15/gitea-na-verejne-subdomene/">Gitea na veřejné subdoméně</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>Volné pokračování <a href="https://www.hardwired.dev/2024/09/14/gitea-v-dockeru-s-daty-na-synology/">Gitea v Dockeru s daty na Synology</a>. Tentokrát nastavíme aby nám naše self-hostovaná <a href="https://about.gitea.com/">Gitea</a> jela na naší veřejné doméně.</p>
<h1>Předpoklady</h1>
<ul>
<li>Máme nainstalovanou Giteu podle předchozího návodu.</li>
<li>Máme koupenou vlastní doménu. (pro tutoriál to bude <code>example.com</code>)</li>
<li>Používáme <a href="https://nginx.org/en/">Nginx</a> jako <a href="https://en.wikipedia.org/wiki/Reverse_proxy">reverzní proxy</a>.</li>
<li>Máme přistup do routeru nebo možnost přesměrovávat porty.</li>
<li>Už jste Giteu jednou spustili a nastavili admin účet.</li>
</ul>
<h1>Nastavení reverzní proxy</h1>
<p>Vytvoříme soubor <code>gitea.example.com</code>.</p>
<pre><code class="language-shell">nano /etc/nginx/sites-available/gitea.example.com</code></pre>
<pre><code>server {
    listen 80;
    server_name gitea.example.com;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name gitea.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://<ip adresa serveru s Gitea>:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}</code></pre>
<p>Při zadání <code>gitea.example.com</code> budou všechny požadavky přesměrovávány na server, kde sedí Gitea a naslouchá na portu 3000. Také se automaticky provede přesměrování z HTTP na HTTPS.</p>
<p>Certifikáty jsou pomocí <a href="https://letsencrypt.org/getting-started/">Let's Encrypt</a> a <a href="https://certbot.eff.org/">Certbot</a>, ale to je na jiný návod. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Poté je potřeba dostat <a href="https://cs.wikipedia.org/wiki/Symbolick%C3%BD_odkaz">symlink</a> do <code>/etc/nginx/sites-enabled</code>.</p>
<pre><code class="language-shell">sudo ln -s /etc/nginx/sites-available/gitea.example.com /etc/nginx/sites-enabled/</code></pre>
<p>Pak je dobré zkontrolovat, jestli Nginx naši novou konfiguraci vezme za svou.</p>
<pre><code class="language-shell">sudo nginx -t</code></pre>
<p>Jestli je vše OK, tak bude potřeba Nginx restartovat.</p>
<pre><code class="language-shell">sudo systemctl restart nginx</code></pre>
<p>Od teď bude <code>gitea.example.com</code> směrovat na naši Giteu.</p>
<h1>Nastavení Gitea</h1>
<p>Předpoklad je, že Gitea běží v kontejneru. Musíme upravit nastavení. Do <a href="https://www.docker.com/resources/what-container/">Docker kontejneru</a> se můžete dostat pomocí příkazové řádky <code>docker exec -it &lt;container_name_or_id&gt; /bin/bash</code>. Pokud máte rozchozený <a href="https://www.portainer.io/">Portainer</a>, stačí v něm kliknout na ikonku shellu a připojíte se do kontejneru jako <code>root</code>.</p>
<p>Po připojení do kontejneru bude pravděpodobně jako uživatel <code>root</code>. Gitea (v závislosti na typu image) má data uložena v <code>/data</code>. Ale jako uživatel <code>git</code>. Proto než začnete něco měnit, tak je dobré se přepnout za uživatele <code>git</code>. To provedete pomocí <code>su git</code>.</p>
<p>Bude potřeba udělat pár úprav v souboru <code>app.ini</code>, ten se nachází v <code>/data/gitea/conf</code>. (v Gitea kontejneru je dostupný editor <a href="https://www.atmos.albany.edu/daes/atmclasses/atm350/vi_cheat_sheet.pdf">VI</a>)</p>
<pre><code class="language-ini">DOMIAN = gitea.example.com
SSH_DOMAIN = gitea.example.com
ROOT_URL = https://gitea.example.com</code></pre>
<p>Tím nastavíme Giteu na naši doménu.</p>
<p>Je předpoklad, že je to soukromý git server, takže nechceme aby se tam mohli lidé samovolně registrovat. Takže je potřeba vypnout registrace. </p>
<pre><code class="language-ini">DISABLE_REGISTRATIONS = true</code></pre>
<p>Poté je potřeba kontejner restartovat.</p>
<h1>Přesměrování portů</h1>
<p>Gitea cotainer (pokud jste to nezměnili) propaguje porty 3000 (web) a 222 (ssh). Proto je potřeba zajistit aby byl port 222 zvenku dostupný a přesměrovával na server kde Gitea sedí. Jestli máte domácí router který sedí na veřejné IP adrese tak provedete přesměrování portů na něm.</p>
<h1>Závěr</h1>
<p>Existují ještě další nastavení, ale po těchto pár krocích by už měla Gitea fungovat na vaší doméně.</p>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2024%2F09%2F15%2Fgitea-na-verejne-subdomene%2F&#038;via=hessevalentino" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2024/09/15/gitea-na-verejne-subdomene/">Gitea na veřejné subdoméně</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Gitea v Dockeru s daty na Synology</title>
		<link>https://www.hardwired.dev/2024/09/14/gitea-v-dockeru-s-daty-na-synology/</link>
		
		<dc:creator><![CDATA[John Doe]]></dc:creator>
		<pubDate>Fri, 13 Sep 2024 22:39:52 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[docker-compose]]></category>
		<category><![CDATA[gitea]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[synology]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2336</guid>

					<description><![CDATA[<p>Gitea je self-hostovaná varianta Bitbucketu nebo GitHubu. V následujícím krátkém návodu se podíváme jak nainstalovat Giteu pomocí Dockeru a ukládat &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2024/09/14/gitea-v-dockeru-s-daty-na-synology/">Gitea v Dockeru s daty na Synology</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p><a href="https://about.gitea.com/">Gitea</a> je self-hostovaná varianta <a href="https://bitbucket.org/">Bitbucketu</a> nebo <a href="https://github.com/">GitHubu</a>. V následujícím krátkém návodu se podíváme jak nainstalovat Giteu pomocí <a href="https://www.docker.com/">Dockeru</a> a ukládat data na <a href="https://www.synology.com/en-us">Synology NAS</a>.</p>
<h1>Prerekvizity</h1>
<ul>
<li>Nainstalovaný a nastavený Docker</li>
<li>Nainstalovaný a nastavený Synology NAS</li>
</ul>
<h1>Myšlenka</h1>
<p>Pro spuštění Gitea serveru použijeme <a href="https://docs.docker.com/compose/">docker compose</a>. Gitea bude používat <a href="https://www.postgresql.org/">PostgreSQL</a> databázi. Pro ukládání dat jak pro Giteu, tak i pro Postgres, použijeme <a href="https://docs.docker.com/engine/storage/volumes/">docker volumes</a>. <code>Docker volumes</code> nebudou lokální, ale přes protokol <a href="https://cs.wikipedia.org/wiki/Network_File_System">NFS</a> budou směřovat na Synology NAS.</p>
<p>Pro potřeby tutoriálu bude mít server IP adresu <code>192.168.10.1</code> a Synology NAS <code>192.168.10.2</code>.</p>
<h1>Nastavení Synology</h1>
<p><code>Ovládací panel</code> &gt; <code>Souborové služby</code> &gt; <code>NFS</code> povolte službu <code>NFS</code>.</p>
<p><code>Ovládací panel</code> &gt; <code>Sdílená složka</code> &gt; <code>Vytvoření sdílené složky</code>. Název <code>docker-volumes</code>. Nepřiřazujeme oprávnění pro uživatele nebo skupiny.</p>
<p>Klikneme na složku <code>docker-volumes</code> a zvolíme upravit. Poté <code>Oprávnění NFS</code>. Klikneme na tlačítko <code>Vytvořit</code>. Do pole <code>Název hostitele nebo IP adresa</code> vložíme IP adresu našeho serveru, tedy <code>192.168.10.1</code>. Tím umožníme našemu serveru přístup k této složce. Dále nastavíme:</p>
<ul>
<li>Oprávnění: <code>Čtení/Zápis</code></li>
<li>Squash: <code>Žádné mapování</code></li>
<li>Zabezpečení: <code>sys</code></li>
<li>Povolit asynchronní</li>
<li>Povolit připojení z portů bez oprávnění (porty vyšší než 1024)</li>
<li>Umožňuje uživatelům přístup k připojeným podsložkám</li>
</ul>
<p>A uložíme.</p>
<p>Poté otevřeme <code>File Station</code> a v naší složce <code>docker-volumes</code> vytvoříme následující podsložky:</p>
<ul>
<li><code>gitea-data</code></li>
<li><code>gitea-postgres</code></li>
</ul>
<p>To je na Synology vše.</p>
<h1>docker-compose.yaml</h1>
<p>Konfigurační soubor vytvoří síť <code>gitea</code> kde na sebe uvidí kontejnery <code>gitea</code> a <code>gitea-db</code>. Vytvoří <code>dva volumes</code> a pomocí protokolu NFS je nasměruje na námi sdílenou složku v Synology NAS.</p>
<p>Docker-compose soubor můžeme spustit pomocí <code>docker-compose up -d</code>. Pokud máte na serveru nainstalovaný a spuštěný <a href="https://www.portainer.io/">Portainer</a>, tak jde <code>docker-compose konfigurace</code> spustit jako <a href="https://docs.portainer.io/user/docker/stacks">stack</a>.</p>
<p>Webové rozhraní poté bude přístupné na <code>http://192.168.10.1:3000</code>.</p>
<pre><code class="language-yaml">networks:
  gitea:

volumes:
  gitea-data:
    driver: local
    driver_opts:
      type: nfs
      o: addr=192.168.1.251,rw
      device: ":/volume1/docker-volumes/gitea-data"

  gitea-postgres:
    driver: local
    driver_opts:
      type: nfs
      o: addr=192.168.1.251,rw
      device: ":/volume1/docker-volumes/gitea-postgres"

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=gitea-db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=supersecretpassword
    restart: always
    networks:
      - gitea
    volumes:
      - gitea-data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - gitea-db

  gitea-db:
    image: postgres:16
    container_name: gitea-db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=supersecretpassword
      - POSTGRES_DB=gitea
    networks:
      - gitea
    volumes:
      - gitea-postgres:/var/lib/postgresql/data</code></pre>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2024%2F09%2F14%2Fgitea-v-dockeru-s-daty-na-synology%2F&#038;via=hessevalentino" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2024/09/14/gitea-v-dockeru-s-daty-na-synology/">Gitea v Dockeru s daty na Synology</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
