[-] thomas@lemmy.zell-mbc.com 20 points 1 year ago* (last edited 1 year ago)

You would expose the port to your host which makes the db acessible by anything running on the host, docker or native. Something like

`port

  • 5432:5432 `

But I would recommend running a dedicated db for each service. At least that's what I do.

  • Simpler setup and therefore less error-prone
  • More secure because the db's don't need to be exposed
  • Easier to manage because I can independently upgrade, backup, move

Isn't the point about containers that you keep things which depend on each other together, eliminating dependencies? A single db would be a unecessary dependency in my view. What if one service requires a new version of MySQL, and another one does not yet support the new version?

I also run all my databases via a bind mount

volume ./data:/etc/postgres/data...

and each service in it's own directory. E.g. /opt/docker/nextcloud

That way I have everything which makes up a service contained in one folder. Easy to backup/restore, easy to move, and not the least, clean.

4
submitted 1 year ago* (last edited 1 year ago) by thomas@lemmy.zell-mbc.com to c/android_dev@programming.dev

I am trying to convert a view based screen to Compose and while what I need should be very basic, somehow I can't get this to work. The use case at hand is a serial task where one step follows the other and the UI should reflect progress. But I seem to miss something fundamental because none of my Text() will update. Below is a simplified example of what I got:

    override fun onCreate(savedInstanceState: Bundle?) {
        …
        
        setContent {
            Import()
        }
    }
    
    
    @Composable
    fun Import() {        
        var step1 by remember { mutableStateOf("") }
        var step2 by remember { mutableStateOf("") }
          
        Column() {
                Text(text = step1)
                Text(text = step2)
            }
        }

        step1 = "Open ZIP file"
        val zipIn: ZipInputStream = openZIPFile()
        step1 = "✓ $step1"
    
        step2 = "Extract files"
        val count = extractFiles()
        step2 = "✓ $step2"
        …
    }

If I set the initial text in the remember line, like this

var step1 by remember { mutableStateOf("Open ZIP file") }

the text will show, but also never gets updated.

I also tried to move the logic part into a separate function which gets executed right after setContent() but then the step1/step2 aren't available for me to update.

#######

Edit:

Well, as expected this turned out to be really easy. I have to break this one

var step1 by remember { mutableStateOf("Open ZIP file") }

into 2 statements:

var step1String =  mutableStateOf("Open ZIP file")

With step1String as a class wide variable so I can change it from other functions. In the Import() composable function al I need is this:

var step1 by remember { step1String }

Have to say Compose is growing on me… :-)

8

Made a little mock-up to show what I mean. May not be for everyone but in my case it would improve readability. Maybe as on option?

17
OPNsense 23.7 released (forum.opnsense.org)
[-] thomas@lemmy.zell-mbc.com 2 points 1 year ago

For me it's Borg backup for Nextcloud an all the other servers

[-] thomas@lemmy.zell-mbc.com 3 points 1 year ago

Turns out there are no more http websites out there, at least I couldn't find any. Good for our security, bad for my demo :-)

[-] thomas@lemmy.zell-mbc.com 4 points 1 year ago* (last edited 1 year ago)

I herewith grant you the official title of a real hacker :-)

That's the tool I was looking for, thanks a lot!

[-] thomas@lemmy.zell-mbc.com 3 points 1 year ago

Wireshark is my backup plan for a text based demo. Unless I am missing something pictures in Wireshark will just be binary stuff across multiple packets which won't work for a demo. The tool I am looking for managed to identify which packets contains image data and showed them in a grid

11

I am preparing for a little presentation on Wifi security / dangers of public networks to a non technical audience and wanted to do a demonstration to make things a little more visual. My idea is to use a tool I had years ago which would look for network packets containing image data and would compile them as they get transmitted. And with this tool active I would ask someone in the audience to navigate to a non https website and then see the images on my PC/projector. It's a small crowd of elderly people, so the risk of catching something inappropriate should be small. :-)

But, I can't remember what the tool was called and my search attempts didn't reveal anything. Anyone got an idea?

Or maybe an idea for an even better demo?

[-] thomas@lemmy.zell-mbc.com 2 points 1 year ago

I did indeed, and I have to say I am impressed from what I see so far! A really nice and complete tool you created. Thanks a lot for putting in the hours 👍

2
Docker-compose + Traefik (lemmy.zell-mbc.com)
submitted 1 year ago* (last edited 1 year ago) by thomas@lemmy.zell-mbc.com to c/ntfy@discuss.ntfy.sh

Has anyone got a working setup of this combination? I somehow can't get things to work

I can run the below on the docker host sucessfully:

curl -d "Backup successful 😀" localhost:81/test  
{"id":"4EpidFddbe8p","time":1688997266,"expires":1689040466,"event":"message","topic":"test","message":"Backup successful 😀"}

…but when I try the public url from a different machine I get a 404 page not found. Which to me means ntfy is running, but there's something wrong with my Traefik setup.

docker-compose.yml

…
    ports:
      - 81:80
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.ntfy.rule=Host(`ntfy.mydomain.com`)"
      - "traefik.http.routers.ntfy.tls=true"
      - "traefik.http.routers.ntfy.entrypoints=http"
      - "traefik.http.routers.ntfy.entrypoints=https"
      - "traefik.http.routers.ntfy.tls.certresolver=http"
      - "traefik.http.services.ntfy.loadBalancer.server.port=81"
      - "traefik.docker.network=traefik-proxy"
      - "traefik.http.routers.ntfy.service=ntfy"

Minimalistic server.yml:

cat config/server.yml 
# ntfy server config file
base-url: "https://ntfy.mydomain.com"
  #upstream-base-url: "https://ntfy.sh"
  #listen-http: "127.0.0.1:80"
cache-file: "/var/cache/ntfy/cache.db"
  #attachment-cache-dir: "/var/cache/ntfy/attachments"
behind-proxy: true

Can anyone spot a mistake here or suggest additional troubleshooting steps?

---- Edit: Never mind, Traefik has given me so much grief, my brain doesn't seem to be compatible :-), that I decided to switch to nginx. Got everything running after 5 minutes…

[-] thomas@lemmy.zell-mbc.com 2 points 1 year ago

Like you I have OPNsense in a VM on one of my PVEs. But I only made sure the nigthly VM back up ran and didnt even bother shutting down the VMs during the upgrade. The VMs got restarted during the final reboot, as the would with every other reboot, and I was back in business.

2

Proxmox Backup Server 3.0 available

It's based on Debian 12 "Bookworm", but uses the newer Linux kernel 6.2, and includes ZFS 2.1.12.

  • Debian 12, with a newer Linux kernel 6.2
  • ZFS 2.1.12
  • Additional text-based user interface (TUI) for the installer ISO
  • Many improvements for tape handling
  • Sync jobs: “transfer-last” parameter for more flexibility

Release notes
https://pbs.proxmox.com/wiki/index.php/Roadmap

Press release
https://www.proxmox.com/en/news/press-releases/

2

Proxmox Backup Server 3.0 available

It's based on Debian 12 "Bookworm", but uses the newer Linux kernel 6.2, and includes ZFS 2.1.12.

  • Debian 12, with a newer Linux kernel 6.2
  • ZFS 2.1.12
  • Additional text-based user interface (TUI) for the installer ISO
  • Many improvements for tape handling
  • Sync jobs: “transfer-last” parameter for more flexibility

Release notes
https://pbs.proxmox.com/wiki/index.php/Roadmap

Press release
https://www.proxmox.com/en/news/press-releases/

[-] thomas@lemmy.zell-mbc.com 2 points 1 year ago

KeePassXC and Nextloud to sync things between devices…

[-] thomas@lemmy.zell-mbc.com 2 points 1 year ago

KeePassXC for me…

[-] thomas@lemmy.zell-mbc.com 2 points 1 year ago* (last edited 1 year ago)

I used this guide when setting up my self hosted email: https://workaround.org/ispmail/buster/big-picture/

I also added in Ciphermail for email encryption and it's been almost hands off ever since.

Granted, there were quite a few things to digest until things were working as I wanted.

view more: next ›

thomas

joined 1 year ago