You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+76-2Lines changed: 76 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -84,8 +84,77 @@ Suggestions, improvements, or ideas? I'd love your input!
84
84
- Friendly contributions are always welcome — even typo fixes!
85
85
86
86
---
87
+
<aid="run-this-site-locally"></a>
87
88
88
-
## 🧩 Optional: Run This Site Locally
89
+
## 🧩 Run this site locally (preview before pushing)
90
+
91
+
> 💡 **Note:** Run all commands from your local terminal (VS Code → View → Terminal).
92
+
93
+
You can preview this GitHub Pages site locally using **Jekyll** — the same engine GitHub uses — so you don’t have to commit every tiny CSS tweak like I did. 🫠
94
+
95
+
### 🔧 Option A: Ruby + Bundler (recommended)
96
+
97
+
1.**Install Bundler** (macOS/Linux):
98
+
99
+
```bash
100
+
gem install bundler
101
+
```
102
+
103
+
2. **Add a Gemfile**in the `docs/` folder:
104
+
105
+
```ruby
106
+
# docs/Gemfile
107
+
source"https://rubygems.org"
108
+
109
+
gem "github-pages", group: :jekyll_plugins
110
+
gem "webrick"# required on Ruby 3+
111
+
```
112
+
113
+
3. **Install and serve**:
114
+
115
+
```bash
116
+
cd docs
117
+
bundle install
118
+
bundle exec jekyll serve --livereload
119
+
```
120
+
121
+
4. **Open the site**:
122
+
123
+
- http://127.0.0.1:4000
124
+
125
+
> Tip: leave the server running — edits to Markdown, CSS, and images will auto-reload.
126
+
127
+
---
128
+
129
+
### 🐋 Option B: Docker (no local Ruby needed)
130
+
131
+
1. From the **repo root**, run:
132
+
133
+
```bash
134
+
docker run --rm -it -p 4000:4000 -v "$PWD":/srv/jekyll jekyll/jekyll \
135
+
jekyll serve --source docs --livereload
136
+
```
137
+
138
+
2. **Open the site**:
139
+
140
+
- http://127.0.0.1:4000
141
+
142
+
---
143
+
144
+
### 🧹 Troubleshooting running the site locally
145
+
146
+
- **Could not locate Gemfile**
147
+
Make sure the file exists at `docs/Gemfile` and you ran commands from `docs/`.
148
+
149
+
- **CSS not updating**
150
+
If the browser is caching, hard-reload or open a private window.
151
+
If needed, stop and restart the Jekyll server.
152
+
153
+
- **Port already in use**
154
+
Try a different port:
155
+
```bash
156
+
bundle exec jekyll serve --livereload --port 4001
157
+
```
89
158
90
159
---
91
160
@@ -494,7 +563,7 @@ To enable **UDP GRO forwarding** permanently:
494
563
rx-udp-gro-forwarding: on
495
564
```
496
565
497
-
Credit to [@brkdncr](https://gitlab.com/brkdncr) for surfacing this tip and sharing a reproducible service example ([Issue #1](https://github.com/johnnyfivepi/tailscale-on-raspberry-pi/issues/1)).
566
+
Credit to [@brkdncr](https://github.com/brkdncr) for surfacing this tip and sharing a reproducible service example ([Issue #1](https://github.com/johnnyfivepi/tailscale-on-raspberry-pi/issues/1)).
498
567
499
568
---
500
569
@@ -512,6 +581,11 @@ Self-hosting a VPN (and setting up an exit node) with Tailscale on a Raspberry P
512
581
513
582
---
514
583
584
+
**Maintainer note:** Want to edit or contribute to this guide?
585
+
See [🧩 Run this site locally](#run-this-site-locally) for setup instructions.
<li>Friendly contributions are always welcome — even typo fixes</li>
136
136
</ul>
137
137
138
+
<hr/>
139
+
<p><aid="run-this-site-locally"></a></p>
140
+
141
+
<h2id="-run-this-site-locally-preview-before-pushing">🧩 Run this site locally (preview before pushing)</h2>
142
+
143
+
<blockquote>
144
+
<p>💡 <strong>Note:</strong> Run all commands from your local terminal (VS Code → View → Terminal).</p>
145
+
</blockquote>
146
+
147
+
<p>You can preview this GitHub Pages site locally using <strong>Jekyll</strong> — the same engine GitHub uses — so you don’t have to commit every tiny CSS tweak like I did. 🫠</p>
<h3id="-troubleshooting-running-the-site-locally">🧹 Troubleshooting running the site locally</h3>
213
+
214
+
<ul>
215
+
<li>
216
+
<p><strong>Could not locate Gemfile</strong><br/>
217
+
Make sure the file exists at <codeclass="language-plaintext highlighter-rouge">docs/Gemfile</code> and you ran commands from <codeclass="language-plaintext highlighter-rouge">docs/</code>.</p>
218
+
</li>
219
+
<li>
220
+
<p><strong>CSS not updating</strong><br/>
221
+
If the browser is caching, hard-reload or open a private window.<br/>
222
+
If needed, stop and restart the Jekyll server.</p>
<p>Credit to <ahref="https://gitlab.com/brkdncr">@brkdncr</a> for surfacing this tip and sharing a reproducible service example (<ahref="https://github.com/johnnyfivepi/tailscale-on-raspberry-pi/issues/1">Issue #1</a>).</p>
774
+
<p>Credit to <ahref="https://github.com/brkdncr">@brkdncr</a> for surfacing this tip and sharing a reproducible service example (<ahref="https://github.com/johnnyfivepi/tailscale-on-raspberry-pi/issues/1">Issue #1</a>).</p>
<p>Self-hosting a VPN (and setting up an exit node) with Tailscale on a Raspberry Pi is not only fun but also a great way to improve your privacy and security while browsing the internet. If you’re interested in building a similar setup or want to ask questions about the process as I experienced it, feel free to leave a comment or reach out.</p>
696
791
792
+
<hr/>
793
+
794
+
<p><strong>Maintainer note:</strong> Want to edit or contribute to this guide?<br/>
795
+
See <ahref="#run-this-site-locally">🧩 Run this site locally</a> for setup instructions.</p>
796
+
797
+
<hr/>
798
+
697
799
<h3id="support-this-project">Support this project</h3>
698
800
699
801
<p>Thank you, reader, for following along with me!</p>
Copy file name to clipboardExpand all lines: docs/_site/index.md
+82-1Lines changed: 82 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,6 +81,79 @@ Suggestions, improvements, or ideas? I'd love your input!
81
81
- Found a better workaround for DNS or routing? Share it!
82
82
- Friendly contributions are always welcome — even typo fixes
83
83
84
+
---
85
+
<aid="run-this-site-locally"></a>
86
+
87
+
## 🧩 Run this site locally (preview before pushing)
88
+
89
+
> 💡 **Note:** Run all commands from your local terminal (VS Code → View → Terminal).
90
+
91
+
You can preview this GitHub Pages site locally using **Jekyll** — the same engine GitHub uses — so you don’t have to commit every tiny CSS tweak like I did. 🫠
92
+
93
+
### 🔧 Option A: Ruby + Bundler (recommended)
94
+
95
+
1.**Install Bundler** (macOS/Linux):
96
+
97
+
```bash
98
+
gem install bundler
99
+
```
100
+
101
+
2. **Add a Gemfile**in the `docs/` folder:
102
+
103
+
```ruby
104
+
# docs/Gemfile
105
+
source"https://rubygems.org"
106
+
107
+
gem "github-pages", group: :jekyll_plugins
108
+
gem "webrick"# required on Ruby 3+
109
+
```
110
+
111
+
3. **Install and serve**:
112
+
113
+
```bash
114
+
cd docs
115
+
bundle install
116
+
bundle exec jekyll serve --livereload
117
+
```
118
+
119
+
4. **Open the site**:
120
+
121
+
- http://127.0.0.1:4000
122
+
123
+
> Tip: leave the server running — edits to Markdown, CSS, and images will auto-reload.
124
+
125
+
---
126
+
127
+
### 🐋 Option B: Docker (no local Ruby needed)
128
+
129
+
1. From the **repo root**, run:
130
+
131
+
```bash
132
+
docker run --rm -it -p 4000:4000 -v "$PWD":/srv/jekyll jekyll/jekyll \
133
+
jekyll serve --source docs --livereload
134
+
```
135
+
136
+
2. **Open the site**:
137
+
138
+
- http://127.0.0.1:4000
139
+
140
+
---
141
+
142
+
### 🧹 Troubleshooting running the site locally
143
+
144
+
- **Could not locate Gemfile**
145
+
Make sure the file exists at `docs/Gemfile` and you ran commands from `docs/`.
146
+
147
+
- **CSS not updating**
148
+
If the browser is caching, hard-reload or open a private window.
149
+
If needed, stop and restart the Jekyll server.
150
+
151
+
- **Port already in use**
152
+
Try a different port:
153
+
```bash
154
+
bundle exec jekyll serve --livereload --port 4001
155
+
```
156
+
84
157
---
85
158
86
159
## 📄 License
@@ -121,6 +194,7 @@ Do you have a spare Raspberry Pi lying around just waiting for a fun project? If
121
194
- [Troubleshooting](#troubleshooting)
122
195
- [Additional Notes](#additional-notes)
123
196
- [Conclusion](#conclusion)
197
+
- [Support this project](#support-this-project)
124
198
- [License](#license)
125
199
126
200
---
@@ -488,7 +562,7 @@ To enable **UDP GRO forwarding** permanently:
488
562
rx-udp-gro-forwarding: on
489
563
```
490
564
491
-
Credit to [@brkdncr](https://gitlab.com/brkdncr) for surfacing this tip and sharing a reproducible service example ([Issue #1](https://github.com/johnnyfivepi/tailscale-on-raspberry-pi/issues/1)).
565
+
Credit to [@brkdncr](https://github.com/brkdncr) for surfacing this tip and sharing a reproducible service example ([Issue #1](https://github.com/johnnyfivepi/tailscale-on-raspberry-pi/issues/1)).
492
566
493
567
---
494
568
@@ -504,6 +578,13 @@ Credit to [@brkdncr](https://gitlab.com/brkdncr) for surfacing this tip and shar
504
578
505
579
Self-hosting a VPN (and setting up an exit node) with Tailscale on a Raspberry Pi is not only fun but also a great way to improve your privacy and security while browsing the internet. If you're interested in building a similar setup or want to ask questions about the process as I experienced it, feel free to leave a comment or reach out.
506
580
581
+
---
582
+
583
+
**Maintainer note:** Want to edit or contribute to this guide?
584
+
See [🧩 Run this site locally](#run-this-site-locally) for setup instructions.
0 commit comments