mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Merge branch 'main' into embedded-derp
This commit is contained in:
		
						commit
						23cde8445f
					
				
							
								
								
									
										4
									
								
								.github/workflows/contributors.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/contributors.yml
									
									
									
									
										vendored
									
									
								
							@ -17,6 +17,10 @@ jobs:
 | 
				
			|||||||
        run: git push origin --delete update-contributors
 | 
					        run: git push origin --delete update-contributors
 | 
				
			||||||
      - name: Create up-to-date contributors branch
 | 
					      - name: Create up-to-date contributors branch
 | 
				
			||||||
        run: git checkout -B update-contributors
 | 
					        run: git checkout -B update-contributors
 | 
				
			||||||
 | 
					      - name: Push empty contributors branch
 | 
				
			||||||
 | 
					        run: git push origin update-contributors
 | 
				
			||||||
 | 
					      - name: Switch back to main
 | 
				
			||||||
 | 
					        run: git checkout main
 | 
				
			||||||
      - uses: BobAnkh/add-contributors@v0.2.2
 | 
					      - uses: BobAnkh/add-contributors@v0.2.2
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          CONTRIBUTOR: "## Contributors"
 | 
					          CONTRIBUTOR: "## Contributors"
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- Boundaries between Namespaces has been removed and all nodes can communicate by default [#357](https://github.com/juanfont/headscale/pull/357)
 | 
					- Boundaries between Namespaces has been removed and all nodes can communicate by default [#357](https://github.com/juanfont/headscale/pull/357)
 | 
				
			||||||
  - To limit access between nodes, use [ACLs](./docs/acls.md).
 | 
					  - To limit access between nodes, use [ACLs](./docs/acls.md).
 | 
				
			||||||
 | 
					- `/metrics` is now a configurable host:port endpoint: [#344](https://github.com/juanfont/headscale/pull/344). You must update your `config.yaml` file to include:
 | 
				
			||||||
 | 
					  ```yaml
 | 
				
			||||||
 | 
					  metrics_listen_addr: 127.0.0.1:9090
 | 
				
			||||||
 | 
					  ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Features
 | 
					### Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										61
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								README.md
									
									
									
									
									
								
							@ -161,6 +161,13 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Juan Font</b></sub>
 | 
					            <sub style="font-size:14px"><b>Juan Font</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
 | 
					        <a href=https://github.com/restanrm>
 | 
				
			||||||
 | 
					            <img src=https://avatars.githubusercontent.com/u/4344371?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Adrien Raffin-Caboisse/>
 | 
				
			||||||
 | 
					            <br />
 | 
				
			||||||
 | 
					            <sub style="font-size:14px"><b>Adrien Raffin-Caboisse</b></sub>
 | 
				
			||||||
 | 
					        </a>
 | 
				
			||||||
 | 
					    </td>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/cure>
 | 
					        <a href=https://github.com/cure>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/149135?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Ward Vandewege/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/149135?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Ward Vandewege/>
 | 
				
			||||||
@ -176,12 +183,14 @@ make build
 | 
				
			|||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/restanrm>
 | 
					        <a href=https://github.com/arch4ngel>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/4344371?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Adrien Raffin-Caboisse/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/11574161?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Justin Angel/>
 | 
				
			||||||
            <br />
 | 
					            <br />
 | 
				
			||||||
            <sub style="font-size:14px"><b>Adrien Raffin-Caboisse</b></sub>
 | 
					            <sub style="font-size:14px"><b>Justin Angel</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/ItalyPaleAle>
 | 
					        <a href=https://github.com/ItalyPaleAle>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/43508?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Alessandro (Ale) Segala/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/43508?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Alessandro (Ale) Segala/>
 | 
				
			||||||
@ -189,8 +198,6 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Alessandro (Ale) Segala</b></sub>
 | 
					            <sub style="font-size:14px"><b>Alessandro (Ale) Segala</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					 | 
				
			||||||
<tr>
 | 
					 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/unreality>
 | 
					        <a href=https://github.com/unreality>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/352522?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=unreality/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/352522?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=unreality/>
 | 
				
			||||||
@ -198,6 +205,13 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>unreality</b></sub>
 | 
					            <sub style="font-size:14px"><b>unreality</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
 | 
					        <a href=https://github.com/e-zk>
 | 
				
			||||||
 | 
					            <img src=https://avatars.githubusercontent.com/u/58356365?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=e-zk/>
 | 
				
			||||||
 | 
					            <br />
 | 
				
			||||||
 | 
					            <sub style="font-size:14px"><b>e-zk</b></sub>
 | 
				
			||||||
 | 
					        </a>
 | 
				
			||||||
 | 
					    </td>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/negbie>
 | 
					        <a href=https://github.com/negbie>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/20154956?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Eugen Biegler/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/20154956?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Eugen Biegler/>
 | 
				
			||||||
@ -219,6 +233,8 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Fernando De Lucchi</b></sub>
 | 
					            <sub style="font-size:14px"><b>Fernando De Lucchi</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/hdhoang>
 | 
					        <a href=https://github.com/hdhoang>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/12537?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Hoàng Đức Hiếu/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/12537?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Hoàng Đức Hiếu/>
 | 
				
			||||||
@ -233,8 +249,6 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Michael G.</b></sub>
 | 
					            <sub style="font-size:14px"><b>Michael G.</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					 | 
				
			||||||
<tr>
 | 
					 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/ptman>
 | 
					        <a href=https://github.com/ptman>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/24669?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Paul Tötterman/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/24669?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Paul Tötterman/>
 | 
				
			||||||
@ -263,11 +277,13 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Stefan Majer</b></sub>
 | 
					            <sub style="font-size:14px"><b>Stefan Majer</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/lachy-2849>
 | 
					        <a href=https://github.com/fincac>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/98844035?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=lachy-2849/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/98844035?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=fincac/>
 | 
				
			||||||
            <br />
 | 
					            <br />
 | 
				
			||||||
            <sub style="font-size:14px"><b>lachy-2849</b></sub>
 | 
					            <sub style="font-size:14px"><b>fincac</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
@ -277,8 +293,6 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>thomas</b></sub>
 | 
					            <sub style="font-size:14px"><b>thomas</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					 | 
				
			||||||
<tr>
 | 
					 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/aberoham>
 | 
					        <a href=https://github.com/aberoham>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/586805?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Abraham Ingersoll/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/586805?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Abraham Ingersoll/>
 | 
				
			||||||
@ -307,6 +321,8 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Bryan Stenson</b></sub>
 | 
					            <sub style="font-size:14px"><b>Bryan Stenson</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/fkr>
 | 
					        <a href=https://github.com/fkr>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/51063?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Felix Kronlage-Dammers/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/51063?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Felix Kronlage-Dammers/>
 | 
				
			||||||
@ -321,8 +337,6 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Felix Yan</b></sub>
 | 
					            <sub style="font-size:14px"><b>Felix Yan</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					 | 
				
			||||||
<tr>
 | 
					 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/JJGadgets>
 | 
					        <a href=https://github.com/JJGadgets>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/5709019?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=JJGadgets/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/5709019?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=JJGadgets/>
 | 
				
			||||||
@ -351,6 +365,8 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Pierre Carru</b></sub>
 | 
					            <sub style="font-size:14px"><b>Pierre Carru</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/rcursaru>
 | 
					        <a href=https://github.com/rcursaru>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/16259641?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=rcursaru/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/16259641?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=rcursaru/>
 | 
				
			||||||
@ -365,8 +381,6 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Ryan Fowler</b></sub>
 | 
					            <sub style="font-size:14px"><b>Ryan Fowler</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					 | 
				
			||||||
<tr>
 | 
					 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/shaananc>
 | 
					        <a href=https://github.com/shaananc>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/2287839?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Shaanan Cohney/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/2287839?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Shaanan Cohney/>
 | 
				
			||||||
@ -395,6 +409,8 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>The Gitter Badger</b></sub>
 | 
					            <sub style="font-size:14px"><b>The Gitter Badger</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/tianon>
 | 
					        <a href=https://github.com/tianon>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/161631?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Tianon Gravi/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/161631?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Tianon Gravi/>
 | 
				
			||||||
@ -409,8 +425,6 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>Tjerk Woudsma</b></sub>
 | 
					            <sub style="font-size:14px"><b>Tjerk Woudsma</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					 | 
				
			||||||
<tr>
 | 
					 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/zekker6>
 | 
					        <a href=https://github.com/zekker6>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/1367798?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Zakhar Bessarab/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/1367798?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Zakhar Bessarab/>
 | 
				
			||||||
@ -432,13 +446,6 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>derelm</b></sub>
 | 
					            <sub style="font-size:14px"><b>derelm</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					 | 
				
			||||||
        <a href=https://github.com/e-zk>
 | 
					 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/58356365?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=e-zk/>
 | 
					 | 
				
			||||||
            <br />
 | 
					 | 
				
			||||||
            <sub style="font-size:14px"><b>e-zk</b></sub>
 | 
					 | 
				
			||||||
        </a>
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/ignoramous>
 | 
					        <a href=https://github.com/ignoramous>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/852289?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=ignoramous/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/852289?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=ignoramous/>
 | 
				
			||||||
@ -446,6 +453,8 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>ignoramous</b></sub>
 | 
					            <sub style="font-size:14px"><b>ignoramous</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/lion24>
 | 
					        <a href=https://github.com/lion24>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/1382102?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=lion24/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/1382102?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=lion24/>
 | 
				
			||||||
@ -453,8 +462,6 @@ make build
 | 
				
			|||||||
            <sub style="font-size:14px"><b>lion24</b></sub>
 | 
					            <sub style="font-size:14px"><b>lion24</b></sub>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					 | 
				
			||||||
<tr>
 | 
					 | 
				
			||||||
    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
					    <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0">
 | 
				
			||||||
        <a href=https://github.com/pernila>
 | 
					        <a href=https://github.com/pernila>
 | 
				
			||||||
            <img src=https://avatars.githubusercontent.com/u/12460060?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=pernila/>
 | 
					            <img src=https://avatars.githubusercontent.com/u/12460060?v=4 width="100;"  style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=pernila/>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								acls.go
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								acls.go
									
									
									
									
									
								
							@ -230,6 +230,10 @@ func expandAlias(
 | 
				
			|||||||
		return []string{"*"}, nil
 | 
							return []string{"*"}, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						log.Debug().
 | 
				
			||||||
 | 
							Str("alias", alias).
 | 
				
			||||||
 | 
							Msg("Expanding")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if strings.HasPrefix(alias, "group:") {
 | 
						if strings.HasPrefix(alias, "group:") {
 | 
				
			||||||
		namespaces, err := expandGroup(aclPolicy, alias, stripEmailDomain)
 | 
							namespaces, err := expandGroup(aclPolicy, alias, stripEmailDomain)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
@ -293,7 +297,9 @@ func expandAlias(
 | 
				
			|||||||
		return []string{cidr.String()}, nil
 | 
							return []string{cidr.String()}, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return ips, errInvalidUserSection
 | 
						log.Warn().Msgf("No IPs found with the alias %v", alias)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return ips, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// excludeCorrectlyTaggedNodes will remove from the list of input nodes the ones
 | 
					// excludeCorrectlyTaggedNodes will remove from the list of input nodes the ones
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										34
									
								
								app.go
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								app.go
									
									
									
									
									
								
							@ -72,6 +72,7 @@ const (
 | 
				
			|||||||
type Config struct {
 | 
					type Config struct {
 | 
				
			||||||
	ServerURL                      string
 | 
						ServerURL                      string
 | 
				
			||||||
	Addr                           string
 | 
						Addr                           string
 | 
				
			||||||
 | 
						MetricsAddr                    string
 | 
				
			||||||
	GRPCAddr                       string
 | 
						GRPCAddr                       string
 | 
				
			||||||
	GRPCAllowInsecure              bool
 | 
						GRPCAllowInsecure              bool
 | 
				
			||||||
	EphemeralNodeInactivityTimeout time.Duration
 | 
						EphemeralNodeInactivityTimeout time.Duration
 | 
				
			||||||
@ -467,11 +468,17 @@ func (h *Headscale) ensureUnixSocketIsAbsent() error {
 | 
				
			|||||||
	return os.Remove(h.cfg.UnixSocket)
 | 
						return os.Remove(h.cfg.UnixSocket)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *Headscale) createRouter(grpcMux *runtime.ServeMux) *gin.Engine {
 | 
					func (h *Headscale) createPrometheusRouter() *gin.Engine {
 | 
				
			||||||
	router := gin.Default()
 | 
						promRouter := gin.Default()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	prometheus := ginprometheus.NewPrometheus("gin")
 | 
						prometheus := ginprometheus.NewPrometheus("gin")
 | 
				
			||||||
	prometheus.Use(router)
 | 
						prometheus.Use(promRouter)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return promRouter
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (h *Headscale) createRouter(grpcMux *runtime.ServeMux) *gin.Engine {
 | 
				
			||||||
 | 
						router := gin.Default()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	router.GET(
 | 
						router.GET(
 | 
				
			||||||
		"/health",
 | 
							"/health",
 | 
				
			||||||
@ -693,6 +700,27 @@ func (h *Headscale) Serve() error {
 | 
				
			|||||||
	log.Info().
 | 
						log.Info().
 | 
				
			||||||
		Msgf("listening and serving HTTP on: %s", h.cfg.Addr)
 | 
							Msgf("listening and serving HTTP on: %s", h.cfg.Addr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						promRouter := h.createPrometheusRouter()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						promHTTPServer := &http.Server{
 | 
				
			||||||
 | 
							Addr:         h.cfg.MetricsAddr,
 | 
				
			||||||
 | 
							Handler:      promRouter,
 | 
				
			||||||
 | 
							ReadTimeout:  HTTPReadTimeout,
 | 
				
			||||||
 | 
							WriteTimeout: 0,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var promHTTPListener net.Listener
 | 
				
			||||||
 | 
						promHTTPListener, err = net.Listen("tcp", h.cfg.MetricsAddr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return fmt.Errorf("failed to bind to TCP address: %w", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						errorGroup.Go(func() error { return promHTTPServer.Serve(promHTTPListener) })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						log.Info().
 | 
				
			||||||
 | 
							Msgf("listening and serving metrics on: %s", h.cfg.MetricsAddr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return errorGroup.Wait()
 | 
						return errorGroup.Wait()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -310,6 +310,7 @@ func getHeadscaleConfig() headscale.Config {
 | 
				
			|||||||
	return headscale.Config{
 | 
						return headscale.Config{
 | 
				
			||||||
		ServerURL:         viper.GetString("server_url"),
 | 
							ServerURL:         viper.GetString("server_url"),
 | 
				
			||||||
		Addr:              viper.GetString("listen_addr"),
 | 
							Addr:              viper.GetString("listen_addr"),
 | 
				
			||||||
 | 
							MetricsAddr:       viper.GetString("metrics_listen_addr"),
 | 
				
			||||||
		GRPCAddr:          viper.GetString("grpc_listen_addr"),
 | 
							GRPCAddr:          viper.GetString("grpc_listen_addr"),
 | 
				
			||||||
		GRPCAllowInsecure: viper.GetBool("grpc_allow_insecure"),
 | 
							GRPCAllowInsecure: viper.GetBool("grpc_allow_insecure"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -55,6 +55,7 @@ func (*Suite) TestConfigLoading(c *check.C) {
 | 
				
			|||||||
	// Test that config file was interpreted correctly
 | 
						// Test that config file was interpreted correctly
 | 
				
			||||||
	c.Assert(viper.GetString("server_url"), check.Equals, "http://127.0.0.1:8080")
 | 
						c.Assert(viper.GetString("server_url"), check.Equals, "http://127.0.0.1:8080")
 | 
				
			||||||
	c.Assert(viper.GetString("listen_addr"), check.Equals, "0.0.0.0:8080")
 | 
						c.Assert(viper.GetString("listen_addr"), check.Equals, "0.0.0.0:8080")
 | 
				
			||||||
 | 
						c.Assert(viper.GetString("metrics_listen_addr"), check.Equals, "127.0.0.1:9090")
 | 
				
			||||||
	c.Assert(viper.GetString("db_type"), check.Equals, "sqlite3")
 | 
						c.Assert(viper.GetString("db_type"), check.Equals, "sqlite3")
 | 
				
			||||||
	c.Assert(viper.GetString("db_path"), check.Equals, "/var/lib/headscale/db.sqlite")
 | 
						c.Assert(viper.GetString("db_path"), check.Equals, "/var/lib/headscale/db.sqlite")
 | 
				
			||||||
	c.Assert(viper.GetString("tls_letsencrypt_hostname"), check.Equals, "")
 | 
						c.Assert(viper.GetString("tls_letsencrypt_hostname"), check.Equals, "")
 | 
				
			||||||
 | 
				
			|||||||
@ -16,6 +16,12 @@ server_url: http://127.0.0.1:8080
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
listen_addr: 0.0.0.0:8080
 | 
					listen_addr: 0.0.0.0:8080
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Address to listen to /metrics, you may want
 | 
				
			||||||
 | 
					# to keep this endpoint private to your internal
 | 
				
			||||||
 | 
					# network
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					metrics_listen_addr: 127.0.0.1:9090
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Address to listen for gRPC.
 | 
					# Address to listen for gRPC.
 | 
				
			||||||
# gRPC is used for controlling a headscale server
 | 
					# gRPC is used for controlling a headscale server
 | 
				
			||||||
# remotely with the CLI
 | 
					# remotely with the CLI
 | 
				
			||||||
 | 
				
			|||||||
@ -5,4 +5,5 @@ metadata:
 | 
				
			|||||||
data:
 | 
					data:
 | 
				
			||||||
  server_url: $(PUBLIC_PROTO)://$(PUBLIC_HOSTNAME)
 | 
					  server_url: $(PUBLIC_PROTO)://$(PUBLIC_HOSTNAME)
 | 
				
			||||||
  listen_addr: "0.0.0.0:8080"
 | 
					  listen_addr: "0.0.0.0:8080"
 | 
				
			||||||
 | 
					  metrics_listen_addr: "127.0.0.1:9090"
 | 
				
			||||||
  ephemeral_node_inactivity_timeout: "30m"
 | 
					  ephemeral_node_inactivity_timeout: "30m"
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,11 @@ spec:
 | 
				
			|||||||
                configMapKeyRef:
 | 
					                configMapKeyRef:
 | 
				
			||||||
                  name: headscale-config
 | 
					                  name: headscale-config
 | 
				
			||||||
                  key: listen_addr
 | 
					                  key: listen_addr
 | 
				
			||||||
 | 
					            - name: METRICS_LISTEN_ADDR
 | 
				
			||||||
 | 
					              valueFrom:
 | 
				
			||||||
 | 
					                configMapKeyRef:
 | 
				
			||||||
 | 
					                  name: headscale-config
 | 
				
			||||||
 | 
					                  key: metrics_listen_addr
 | 
				
			||||||
            - name: DERP_MAP_PATH
 | 
					            - name: DERP_MAP_PATH
 | 
				
			||||||
              value: /vol/config/derp.yaml
 | 
					              value: /vol/config/derp.yaml
 | 
				
			||||||
            - name: EPHEMERAL_NODE_INACTIVITY_TIMEOUT
 | 
					            - name: EPHEMERAL_NODE_INACTIVITY_TIMEOUT
 | 
				
			||||||
 | 
				
			|||||||
@ -26,6 +26,11 @@ spec:
 | 
				
			|||||||
                configMapKeyRef:
 | 
					                configMapKeyRef:
 | 
				
			||||||
                  name: headscale-config
 | 
					                  name: headscale-config
 | 
				
			||||||
                  key: listen_addr
 | 
					                  key: listen_addr
 | 
				
			||||||
 | 
					            - name: METRICS_LISTEN_ADDR
 | 
				
			||||||
 | 
					              valueFrom:
 | 
				
			||||||
 | 
					                configMapKeyRef:
 | 
				
			||||||
 | 
					                  name: headscale-config
 | 
				
			||||||
 | 
					                  key: metrics_listen_addr
 | 
				
			||||||
            - name: DERP_MAP_PATH
 | 
					            - name: DERP_MAP_PATH
 | 
				
			||||||
              value: /vol/config/derp.yaml
 | 
					              value: /vol/config/derp.yaml
 | 
				
			||||||
            - name: EPHEMERAL_NODE_INACTIVITY_TIMEOUT
 | 
					            - name: EPHEMERAL_NODE_INACTIVITY_TIMEOUT
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@ dns_config:
 | 
				
			|||||||
db_path: /tmp/integration_test_db.sqlite3
 | 
					db_path: /tmp/integration_test_db.sqlite3
 | 
				
			||||||
private_key_path: private.key
 | 
					private_key_path: private.key
 | 
				
			||||||
listen_addr: 0.0.0.0:8080
 | 
					listen_addr: 0.0.0.0:8080
 | 
				
			||||||
 | 
					metrics_listen_addr: 127.0.0.1:9090
 | 
				
			||||||
server_url: http://headscale:8080
 | 
					server_url: http://headscale:8080
 | 
				
			||||||
 | 
					
 | 
				
			||||||
derp:
 | 
					derp:
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user