Thanks for this tip! I managed to get it going and it works nice and indeed .... over AppleTalk!@twelvetone12 There IS a command line AFP client that supports AppleTalk: https://github.com/demonfoo/afp-perl
Written in Perl of all things.
$/usr/local/bin/afpclient.pl --atalk-first "afp://MacIPRpi/MacIPRPi DISK"
afpclient MacIPRpi:MacIPRPi DISK/> ls
-rw-r--r-- 1 0 0 6148 Jan 9 01:24 .DS_Store
drwxr-xr-x 2 0 nogroup 0 Jan 8 23:08 Network Trash Folder
drwxr-xr-x 5 nobody nogroup 0 Jan 8 23:08 SHARED_DISK
drwxr-xr-x 2 0 nogroup 0 Jan 8 23:08 Temporary Items
afpclient MacIPRpi:MacIPRPi DISK/> cd SHARED_DISK/
afpclient MacIPRpi:MacIPRPi DISK/SHARED_DISK> ls
drwxr-xr-x 3 ftp nogroup 0 Jan 5 12:45 FTP
-rw-r--r-- 1 0 0 2031592 Jan 8 23:09 IMG_4761.PNG
afpclient MacIPRpi:MacIPRPi DISK/SHARED_DISK> get IMG_4761.PNG
100% |*************************| IMG_4761.PNG 191.12 MB/sec
Transferred 2031592 bytes in 0h0m0.01s
Being stuck at home over the Easter weekend fighting off a cold, I had the inspiration/time to work on this.About the webmin, since, as I understand, it "just" parses and updates the apf.conf file, it could stay in a container by itself, as an additional service in docker-compose accessing the netatalk apf.conf via a shared folder, this is what docker-compose is for. No need to put it in the same Netatalk container.
services:
netatalk:
image: netatalk:latest
networks:
- afp_network
ports:
- "548:548"
volumes:
- afpshare:/mnt/afpshare
- afpbackup:/mnt/afpbackup
- afpconf:/etc/netatalk
- /var/run/dbus:/var/run/dbus
environment:
- AFP_USER=atalk1
- AFP_USER2=atalk2
- AFP_PASS=
- AFP_PASS2=
- AFP_GROUP=afpusers
- AFP_CONFIG_POLLING=5
- MANUAL_CONFIG=1
webmin:
image: netatalk_webmin_module:latest
networks:
- afp_network
ports:
- "10000:10000"
volumes:
- afpconf:/etc/netatalk
environment:
- WEBMIN_USER=admin
- WEBMIN_PASS=
depends_on:
- netatalk
volumes:
afpshare:
afpbackup:
afpconf:
networks:
afp_network:
driver: bridge
A solution to this issue has been merged into the main branch now. I introduced a dynamic module option that hides away the "service actions" that expect the netatalk daemons to be locally available. This option gets enabled by default when building the webmin module via the Dockerfile.The one major UX flaw right now, obviously, is that the start/stop/restart service buttons won't have any effect, since the daemons run in a container separate from webmin. I'm toying with the idea of containerizing a slightly modified version of the webmin module that simply hides those buttons. Ideally without creating a copy of index.cgi that has to be maintained.