# RaspberryPi Sifirdan Kurulumu, SSH ve VNC baglantisi, ngrok ile internetten eris

![](https://i.imgur.com/zooXqM8.png)

## Ilk tavsiyem sudur ki **raspberry’nin kendi isletim sistemini** kurun

* `Ubuntu` vb gibi isletim sistemlerini **kurmayin** performans sorunlari var
* Ayrica paketlerin hepsinin arm olmasi gerekiyor ki bu da sorun
* Ek olarak ubuntuda arm olmayan ama raspberry’de olan paketler var

<details>

<summary>2-3 saatimi ubuntuyu sorunsuz kullanmak icin harcadim</summary>

\- Tabiki kendi kullanim senaryom ile sizinki uyusmayacaktir - Ama yine de riski yuksek, bilmekte fayda var - Risk - Reward dengesi bana gore yetersiz

</details>

## SSH key ile sifresiz olarak raspberry’e baglanmak

<details>

<summary>_SSH_ key olusturun (veya olani kullanin)</summary>

```bash
ssh-keygen -t rsa -b 4096
```

</details>

<details>

<summary>Ardindan bunu _raspberry_ uzerine gonderin</summary>

```bash
ssh-copy-id kullaniciadi@raspberrypi_adresi
```

</details>

* Artik sifresiz bir sekilde baglanabilirsiniz

<details>

<summary>1Password ile uyumunu saglamak (opsiyonel)</summary>

\- \`New Item\` > \`SSH Key\` deyip \`.ssh/id\_rsa\` dosyanizi buraya surukleyin - \`Agent Sock\` kurulu ise 1password ile baglanabilirsiniz

<img src="https://i.imgur.com/63tdc0l.png" alt="" data-size="original">

</details>

<details>

<summary>Tum SSH islemleri</summary>

</details>

## VNC Server Kurulumu ile GUI Arayuzuyle Baglanmak

<details>

<summary>[VNC Server](https://www.realvnc.com/en/connect/download/vnc/) zaten kurulu olarak gelir _raspberry_’de, paketlerini guncellemeniz yeterlidir</summary>

```bash
sudo apt update -y && sudo apt upgrade -y
```

</details>

<details>

<summary>Ardindan VNC Server’i `service mode` olarak `sudo` ile calistirin</summary>

```bash
sudo systemctl restart vncserver-x11-serviced
```

</details>

<details>

<summary>Artik VNC Server uzerinden `raspberrypi.local` yazarak baglanabilirsiniz</summary>

<img src="https://i.imgur.com/AqSxmcg.png" alt="" data-size="original">

</details>

* Ek bilgi olarak; `VNC` için 5900 portu kullanılır

{% embed url="<https://help.realvnc.com/hc/en-us/articles/360002249917-VNC-Connect-and-Raspberry-Pi#setting-up-your-raspberry-pi-0-0>" %}

## NodeJs Kurulumu

* [Nodesource](https://deb.nodesource.com/) uzerinden indirebilirsiniz

```bash
sudo apt-get update && sudo apt-get install -y ca-certificates curl gnupg
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update && sudo apt-get install nodejs -y
```

{% embed url="<https://deb.nodesource.com/>" %}

## Ngrok Kurulumu

* [Ngrok yonergelerine](https://dashboard.ngrok.com/get-started/setup/raspberrypi) bakmayi unutmayin

<details>

<summary>`ngrok` kurulumu</summary>

```bash
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list && sudo apt update && sudo apt install ngrok
```

</details>

<details>

<summary>`ngrok` yapilandirma</summary>

\- \`TOKEN\` bilgisini almak icin \[Your Authtoken]\(<https://dashboard.ngrok.com/get-started/your-authtoken>) alanina bakin

```bash
TOKEN="" # Buraya token bilginizi koyun
ngrok config add-authtoken $TOKEN
```

</details>

<details>

<summary>Baglanti basarili olursa [Agents](https://dashboard.ngrok.com/tunnels/agents) alaninda gorebilirsiniz</summary>

\- 15.tcp.eu.ngrok.io:149 icin \`\~/.ssh/config\` ayari

```bash
Host ngrok
    HostName 15.tcp.eu.ngrok.io
    Port 149
    User username
    ForwardX11 yes
```

</details>

## Pm2 ile Ngrok Kullanimi

## Raspberry Dizinine Internetten Erismek

<details>

<summary>Projenin dizinine gelin ve python ile serve edin</summary>

\- \`8000\` portu olduguna dikkat edin

```bash
PATH="Downlaod/tmp"
cd $PATH
python -m http.server 8000
```

```bash
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
```

</details>

<details>

<summary>ardindan ngrok ile `http` port yonlendirmesi yapin</summary>

```bash
DOMAIN=""
ngrok http 8000 --domain=$DOMAIN
```

<img src="https://i.imgur.com/TvJxxl1.png" alt="" data-size="original">

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.yemreak.com/arsiv/programming/raspberrypi-sifirdan-kurulumu-ssh-ve-vnc-baglantisi-ngrok-ile-internetten-erismek.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
