mirror of
				https://github.com/steveiliop56/tinyauth.git
				synced 2025-10-31 14:15:50 +00:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			76f2014444
			...
			docs/updat
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | f79c3f6ca1 | ||
|   | 5a4855c12c | ||
|   | 05d4dbd68e | ||
|   | ae8347fd28 | 
							
								
								
									
										4
									
								
								.github/workflows/nightly.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/nightly.yml
									
									
									
									
										vendored
									
									
								
							| @@ -396,6 +396,8 @@ jobs: | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ghcr.io/${{ github.repository_owner }}/tinyauth | ||||
|           flavor: | | ||||
|             latest=false | ||||
|           tags: | | ||||
|             type=raw,nightly | ||||
|  | ||||
| @@ -433,6 +435,8 @@ jobs: | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ghcr.io/${{ github.repository_owner }}/tinyauth | ||||
|           flavor: | | ||||
|             latest=false | ||||
|           tags: | | ||||
|             type=raw,nightly-distroless | ||||
|  | ||||
|   | ||||
							
								
								
									
										19
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							| @@ -359,10 +359,13 @@ jobs: | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ghcr.io/${{ github.repository_owner }}/tinyauth | ||||
|           flavor: | | ||||
|             latest=true | ||||
|             prefix=v,onlatest=false | ||||
|           tags: | | ||||
|             type=semver,pattern={{version}},prefix=v | ||||
|             type=semver,pattern={{major}},prefix=v | ||||
|             type=semver,pattern={{major}}.{{minor}},prefix=v | ||||
|             type=semver,pattern={{version}} | ||||
|             type=semver,pattern={{major}} | ||||
|             type=semver,pattern={{major}}.{{minor}} | ||||
|  | ||||
|       - name: Create manifest list and push | ||||
|         working-directory: ${{ runner.temp }}/digests | ||||
| @@ -398,10 +401,14 @@ jobs: | ||||
|         uses: docker/metadata-action@v5 | ||||
|         with: | ||||
|           images: ghcr.io/${{ github.repository_owner }}/tinyauth | ||||
|           flavor: | | ||||
|             latest=false | ||||
|             prefix=v,onlatest=false | ||||
|             suffix=-distroless,onlatest=false | ||||
|           tags: | | ||||
|             type=semver,pattern={{version}},prefix=v,suffix=-distroless | ||||
|             type=semver,pattern={{major}},prefix=v,suffix=-distroless | ||||
|             type=semver,pattern={{major}}.{{minor}},prefix=v,suffix=-distroless | ||||
|             type=semver,pattern={{version}} | ||||
|             type=semver,pattern={{major}} | ||||
|             type=semver,pattern={{major}}.{{minor}} | ||||
|  | ||||
|       - name: Create manifest list and push | ||||
|         working-directory: ${{ runner.temp }}/digests | ||||
|   | ||||
| @@ -47,6 +47,8 @@ WORKDIR /tinyauth | ||||
|  | ||||
| COPY --from=builder /tinyauth/tinyauth ./ | ||||
|  | ||||
| RUN mkdir -p /data | ||||
|  | ||||
| EXPOSE 3000 | ||||
|  | ||||
| VOLUME ["/data"] | ||||
|   | ||||
| @@ -38,6 +38,8 @@ COPY ./cmd ./cmd | ||||
| COPY ./internal ./internal | ||||
| COPY --from=frontend-builder /frontend/dist ./internal/assets/dist | ||||
|  | ||||
| RUN mkdir -p /data | ||||
|  | ||||
| RUN CGO_ENABLED=0 go build -ldflags "-s -w -X tinyauth/internal/config.Version=${VERSION} -X tinyauth/internal/config.CommitHash=${COMMIT_HASH} -X tinyauth/internal/config.BuildTimestamp=${BUILD_TIMESTAMP}"  | ||||
|   | ||||
| # Runner | ||||
| @@ -47,6 +49,9 @@ WORKDIR /tinyauth | ||||
|  | ||||
| COPY --from=builder /tinyauth/tinyauth ./ | ||||
|  | ||||
| # Since it's distroless, we need to copy the data directory from the builder stage | ||||
| COPY --from=builder /tinyauth/data /data | ||||
|  | ||||
| EXPOSE 3000 | ||||
|  | ||||
| VOLUME ["/data"] | ||||
|   | ||||
| @@ -53,7 +53,7 @@ Tinyauth is licensed under the GNU General Public License v3.0. TL;DR — You ma | ||||
|  | ||||
| A big thank you to the following people for providing me with more coffee: | ||||
|  | ||||
| <!-- sponsors --><a href="https://github.com/erwinkramer"><img src="https://github.com/erwinkramer.png" width="64px" alt="User avatar: erwinkramer" /></a>  <a href="https://github.com/nicotsx"><img src="https://github.com/nicotsx.png" width="64px" alt="User avatar: nicotsx" /></a>  <a href="https://github.com/SimpleHomelab"><img src="https://github.com/SimpleHomelab.png" width="64px" alt="User avatar: SimpleHomelab" /></a>  <a href="https://github.com/jmadden91"><img src="https://github.com/jmadden91.png" width="64px" alt="User avatar: jmadden91" /></a>  <a href="https://github.com/tribor"><img src="https://github.com/tribor.png" width="64px" alt="User avatar: tribor" /></a>  <a href="https://github.com/eliasbenb"><img src="https://github.com/eliasbenb.png" width="64px" alt="User avatar: eliasbenb" /></a>  <a href="https://github.com/afunworm"><img src="https://github.com/afunworm.png" width="64px" alt="User avatar: afunworm" /></a>  <!-- sponsors --> | ||||
| <!-- sponsors --><a href="https://github.com/erwinkramer"><img src="https://github.com/erwinkramer.png" width="64px" alt="User avatar: erwinkramer" /></a>  <a href="https://github.com/nicotsx"><img src="https://github.com/nicotsx.png" width="64px" alt="User avatar: nicotsx" /></a>  <a href="https://github.com/SimpleHomelab"><img src="https://github.com/SimpleHomelab.png" width="64px" alt="User avatar: SimpleHomelab" /></a>  <a href="https://github.com/jmadden91"><img src="https://github.com/jmadden91.png" width="64px" alt="User avatar: jmadden91" /></a>  <a href="https://github.com/tribor"><img src="https://github.com/tribor.png" width="64px" alt="User avatar: tribor" /></a>  <a href="https://github.com/eliasbenb"><img src="https://github.com/eliasbenb.png" width="64px" alt="User avatar: eliasbenb" /></a>  <a href="https://github.com/afunworm"><img src="https://github.com/afunworm.png" width="64px" alt="User avatar: afunworm" /></a>  <a href="https://github.com/chip-well"><img src="https://github.com/chip-well.png" width="64px" alt="User avatar: chip-well" /></a>  <a href="https://github.com/Lancelot-Enguerrand"><img src="https://github.com/Lancelot-Enguerrand.png" width="64px" alt="User avatar: Lancelot-Enguerrand" /></a>  <!-- sponsors --> | ||||
|  | ||||
| ## Acknowledgements | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								air.toml
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								air.toml
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ root = "/tinyauth" | ||||
| tmp_dir = "tmp" | ||||
|  | ||||
| [build] | ||||
| pre_cmd = ["mkdir -p internal/assets/dist", "echo 'backend running' > internal/assets/dist/index.html", "go install github.com/go-delve/delve/cmd/dlv@v1.25.0"] | ||||
| pre_cmd = ["mkdir -p internal/assets/dist", "mkdir -p /data", "echo 'backend running' > internal/assets/dist/index.html", "go install github.com/go-delve/delve/cmd/dlv@v1.25.0"] | ||||
| cmd = "CGO_ENABLED=0 go build -gcflags=\"all=-N -l\" -o tmp/tinyauth ." | ||||
| bin = "/go/bin/dlv --listen :4000 --headless=true --api-version=2 --accept-multiclient --log=true exec tmp/tinyauth --continue --check-go-version=false" | ||||
| include_ext = ["go"] | ||||
|   | ||||
| @@ -14,6 +14,7 @@ import ( | ||||
| type DockerService struct { | ||||
| 	client      *client.Client | ||||
| 	context     context.Context | ||||
| 	isConnected bool | ||||
| } | ||||
|  | ||||
| func NewDockerService() *DockerService { | ||||
| @@ -31,10 +32,24 @@ func (docker *DockerService) Init() error { | ||||
|  | ||||
| 	docker.client = client | ||||
| 	docker.context = ctx | ||||
|  | ||||
| 	_, err = docker.client.Ping(docker.context) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		log.Debug().Err(err).Msg("Docker not connected") | ||||
| 		docker.isConnected = false | ||||
| 		docker.client = nil | ||||
| 		docker.context = nil | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	docker.isConnected = true | ||||
| 	log.Debug().Msg("Docker connected") | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (docker *DockerService) GetContainers() ([]container.Summary, error) { | ||||
| func (docker *DockerService) getContainers() ([]container.Summary, error) { | ||||
| 	containers, err := docker.client.ContainerList(docker.context, container.ListOptions{}) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| @@ -42,7 +57,7 @@ func (docker *DockerService) GetContainers() ([]container.Summary, error) { | ||||
| 	return containers, nil | ||||
| } | ||||
|  | ||||
| func (docker *DockerService) InspectContainer(containerId string) (container.InspectResponse, error) { | ||||
| func (docker *DockerService) inspectContainer(containerId string) (container.InspectResponse, error) { | ||||
| 	inspect, err := docker.client.ContainerInspect(docker.context, containerId) | ||||
| 	if err != nil { | ||||
| 		return container.InspectResponse{}, err | ||||
| @@ -50,26 +65,19 @@ func (docker *DockerService) InspectContainer(containerId string) (container.Ins | ||||
| 	return inspect, nil | ||||
| } | ||||
|  | ||||
| func (docker *DockerService) DockerConnected() bool { | ||||
| 	_, err := docker.client.Ping(docker.context) | ||||
| 	return err == nil | ||||
| } | ||||
|  | ||||
| func (docker *DockerService) GetLabels(appDomain string) (config.App, error) { | ||||
| 	isConnected := docker.DockerConnected() | ||||
|  | ||||
| 	if !isConnected { | ||||
| 	if !docker.isConnected { | ||||
| 		log.Debug().Msg("Docker not connected, returning empty labels") | ||||
| 		return config.App{}, nil | ||||
| 	} | ||||
|  | ||||
| 	containers, err := docker.GetContainers() | ||||
| 	containers, err := docker.getContainers() | ||||
| 	if err != nil { | ||||
| 		return config.App{}, err | ||||
| 	} | ||||
|  | ||||
| 	for _, ctr := range containers { | ||||
| 		inspect, err := docker.InspectContainer(ctr.ID) | ||||
| 		inspect, err := docker.inspectContainer(ctr.ID) | ||||
| 		if err != nil { | ||||
| 			return config.App{}, err | ||||
| 		} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user