Add self-hosted Kubernetes steps
This commit is contained in:
		
							parent
							
								
									be1ba135e6
								
							
						
					
					
						commit
						9d85cfa062
					
				
					 1 changed files with 105 additions and 0 deletions
				
			
		
							
								
								
									
										105
									
								
								docs/install.md
									
										
									
									
									
								
							
							
						
						
									
										105
									
								
								docs/install.md
									
										
									
									
									
								
							|  | @ -294,3 +294,108 @@ COPY server.yml /etc/ntfy/server.yml | ||||||
| ENTRYPOINT ["ntfy", "serve"] | ENTRYPOINT ["ntfy", "serve"] | ||||||
| ``` | ``` | ||||||
| This image can be pushed to a container registry and shipped independently. All that's needed when running it is mapping ntfy's port to a host port. | This image can be pushed to a container registry and shipped independently. All that's needed when running it is mapping ntfy's port to a host port. | ||||||
|  | 
 | ||||||
|  | ## Kubernetes | ||||||
|  | 
 | ||||||
|  | The setup for Kubernetes is very similar to that for Docker, and requires a fairly minimal deployment or pod definition to function. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | === "deployment" | ||||||
|  |     ```yaml | ||||||
|  |     apiVersion: apps/v1 | ||||||
|  |     kind: Deployment | ||||||
|  |     metadata: | ||||||
|  |     name: ntfy | ||||||
|  |     spec: | ||||||
|  |     selector: | ||||||
|  |         matchLabels: | ||||||
|  |         app: ntfy | ||||||
|  |     template: | ||||||
|  |         metadata: | ||||||
|  |         labels: | ||||||
|  |             app: ntfy | ||||||
|  |         spec: | ||||||
|  |         containers: | ||||||
|  |         - name: ntfy | ||||||
|  |             image: binwiederhier/ntfy | ||||||
|  |             args: ["serve"] | ||||||
|  |             resources: | ||||||
|  |             limits: | ||||||
|  |                 memory: "128Mi" | ||||||
|  |                 cpu: "500m" | ||||||
|  |             ports: | ||||||
|  |             - containerPort: 80 | ||||||
|  |             name: http | ||||||
|  |             volumeMounts: | ||||||
|  |             - name: config | ||||||
|  |             mountPath: "/etc/ntfy" | ||||||
|  |             readOnly: true | ||||||
|  |         volumes: | ||||||
|  |             - name: config | ||||||
|  |             configMap: | ||||||
|  |                 name: ntfy | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  | === "pod" | ||||||
|  |     ```yaml | ||||||
|  |     apiVersion: v1 | ||||||
|  |     kind: Pod | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app: ntfy | ||||||
|  |     spec: | ||||||
|  |       containers: | ||||||
|  |       - name: ntfy | ||||||
|  |         image: binwiederhier/ntfy | ||||||
|  |         args: ["serve"] | ||||||
|  |         resources: | ||||||
|  |           limits: | ||||||
|  |             memory: "128Mi" | ||||||
|  |             cpu: "500m" | ||||||
|  |         ports: | ||||||
|  |         - containerPort: 80 | ||||||
|  |           name: http | ||||||
|  |         volumeMounts: | ||||||
|  |         - name: config | ||||||
|  |           mountPath: "/etc/ntfy" | ||||||
|  |           readOnly: true | ||||||
|  |       volumes: | ||||||
|  |         - name: config | ||||||
|  |           configMap: | ||||||
|  |             name: ntfy | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  | Configuration is relatively straightforward. As an exmaple, a minimal configuration is provided. | ||||||
|  | 
 | ||||||
|  | === "resource definition" | ||||||
|  |     ```yaml | ||||||
|  |     apiVersion: v1 | ||||||
|  |     kind: ConfigMap | ||||||
|  |     metadata: | ||||||
|  |     name: ntfy | ||||||
|  |     data: | ||||||
|  |     server.yml: | | ||||||
|  |         # Template: https://github.com/binwiederhier/ntfy/blob/main/server/server.yml | ||||||
|  |         base-url: https://ntfy.sh | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  | === "from-file" | ||||||
|  |     ```bash | ||||||
|  |     kubectl create configmap ntfy --from-file=server.yml  | ||||||
|  |     ``` | ||||||
|  | 
 | ||||||
|  | A small service is also required to properly route your traffic to the pod - it is recommended to use an ingress, but a NodePort may also | ||||||
|  | be acceptable. | ||||||
|  | 
 | ||||||
|  | ```yaml | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: ntfy | ||||||
|  | spec: | ||||||
|  |   selector: | ||||||
|  |     app: ntfy | ||||||
|  |   ports: | ||||||
|  |   - port: 80 | ||||||
|  |     targetPort: 80 | ||||||
|  | ``` | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue