Convert Nextcloud and Pingvin to steps

This commit is contained in:
Djeex
2026-09-04 15:14:12 +02:00
parent a7b85af45a
commit cd75fd2288
4 changed files with 79 additions and 36 deletions
+39 -15
View File
@@ -5,20 +5,16 @@ description: Install Pingvin Share, a self-hosted file sharing platform to send
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
# Pingvin
::note
🎯 __Objectives:__
- Install Pingvin
- Expose Pingvin
::
[Pingvin](https://github.com/stonith404/pingvin-share) is a tool for quickly sharing files, similar to WeTransfer. Its many sharing options (password, expiration time, custom link, etc.) make it the ideal tool for sharing files quickly. Pingvin can also create _upload requests_, i.e. a shareable link you can send to someone so they can upload their files for you to retrieve.
![picture](/img/serveex/pingvin.png)
## Installation
::steps{level="3"}
### Deploy the stack
Open Dockge, click `compose`, name the stack `pingvin`, then copy-paste this:
```yaml [compose.yaml]
@@ -70,6 +66,9 @@ From here on, we assume the network name for Swag is `swag_default`.
Deploy the container and go to `http://yourserverip:3600`. That's it! Your Pingvin web UI instance is up and running!
### Done !
::
::caution
__If it fails:__ check your firewall rules.
@@ -83,6 +82,9 @@ The whole point of a solution like this is being able to access it remotely, fro
We assume you have the subdomain `pingvin.mydomain.com` with a `CNAME` pointing to `mydomain.com` in your [DNS zone](/general/networking/dns). And of course, [unless you're using Cloudflare Zero Trust](/serveex/security/cloudflare), port `443` on your router is forwarded to port `443` on your server via [NAT rules](/general/networking/nat).
::
::steps{level="3"}
### Add Pingvin's network to SWAG
In Dockge, go to the SWAG stack and edit the compose file to add the pingvin network:
```yaml [compose.yaml]
@@ -109,6 +111,8 @@ From here on, we assume the pingvin network name is `pingvin_default`. You can v
Redeploy the stack by clicking "deploy" and wait for SWAG to be fully up.
### Create the subdomain.conf file
In the Swag folders, create the `pingvin.subdomain.conf` file.
::tip{icon=""}
@@ -175,6 +179,9 @@ server {
Press :kbd{value="Ctrl+O"}, then :kbd{value="Enter"} to save, and :kbd{value="Ctrl+X"} to exit.
### Done !
::
That's it, you've exposed Pingvin!
## Protecting Pingvin with Pocket ID
@@ -204,28 +211,45 @@ In Pingvin, go to _Administration > Configuration > Social Login_ and fill in:
That's it! From now on, when you log in to Pingvin, an "Open ID" button will be available below the login form.
::tip{icon=""}
::::tip{icon=""}
✨ You can use [Authentik](/serveex/advanced/authentik) instead of Pocket ID:
1. In your Authentik admin area, create an OAuth2/OpenID provider.
:::collapsible{name="the Authentik setup steps"}
::steps{level="4"}
#### Create an OAuth2/OpenID provider
2. Fill in each section as follows, replacing `mydomain.com` with your own domain. Copy the `Client ID` and `Client Secret` fields somewhere safe.
In your Authentik admin area, create an OAuth2/OpenID provider.
#### Configure the provider
Fill in each section as follows, replacing `mydomain.com` with your own domain. Copy the `Client ID` and `Client Secret` fields somewhere safe.
![picture](/img/serveex/pingvin-auth1.png)
![picture](/img/serveex/pingvin-auth2.png)
![picture](/img/serveex/pingvin-auth3.png)
3. Save and create a `pingvin` application as follows.
#### Create the application
Save and create a `pingvin` application as follows.
![picture](/img/serveex/pingvin-auth4.png)
4. Save and go to your list of outposts. Add the pingvin provider to your outpost.
#### Add the provider to your outpost
5. Leave Authentik, and go to Pingvin's admin interface.
Save and go to your list of outposts. Add the pingvin provider to your outpost.
#### Configure Pingvin's OAuth settings
Leave Authentik, and go to Pingvin's admin interface. In the _"OAuth"_ section, fill in the following fields:
6. In the _"OAuth"_ section, fill in the following fields:
- `OpenID discovery URI` with `https://pingvin.mydomain.com/application/o/pingvin/.well-known/openid-configuration` (don't forget to replace `mydomain.com` with your own domain)
- `OpenID username claim` with `preferred_username`
- `OpenID client ID` with the ID you copied in step 2.
- `OpenID client secret` with the token you copied in step 2.
#### Done !
::
:::
::::