SFTPgo directory not found

I created a directory as admin user, but cannot find them within the Debian directory structure

What is the recommend path to create a directory?

Ps.: if I create an user, the storage path should be

but the is no one

root@ns8:/srv# pwd
/srv
root@ns8:/srv# ls -lsa /srv/
insgesamt 8
4 drwxr-xr-x  2 root root 4096 22. Nov 21:51 .
4 drwxr-xr-x 18 root root 4096  6. Mär 08:37 ..
root@ns8:/srv#
1 Like

HEllo @capote , dod you get a solution to your issue?

Did you try first getting into the container

ssh webserver@localhost first?

Probably in the volumes mounted under the webserver1 file architecture

Keep in mind we are in the container world

However what do you want to achieve

I looked around, no directory to found

I want to upload a backup file for DouoWiki and restore them within the DokuWiki Directory

Tried from webserver app (not from ns8-dokuwiki app)…

There is the user’s home dir and also virtual folders.

By default, webserver user’s home dir is represented as /srv/sftpgo/data/username (from the point of view of the container) and it can be found on the filesystem at /home/webserver1/.local/share/containers/storage/volumes/websites/_data/username

If user’s home dir is customized not to be under /srv/sftpgo/data/ path, then the home path you specify is created under /home/webserver1/.local/share/containers/storage/overlay/xxxxxxxxxxxxxxxxxxxx/diff/. Same goes for virtual folders. Probably we shouldn’t directly touch storage overlay.

A virtual folder is a mapping between a SFTPGo virtual path and a filesystem path outside the user home directory or on a different storage provider.
Therefore, there is no need to create virtual folders for the users home directory or for directories within the users home directory.

An example of virtual folder:

Create a virtual folder

First, from SFTPGo Web-Admin Interface, create a virtual folder:

  • giving it at least a Name.
  • Select the type of storage: let’s say local.
  • If it’s a local storage, we have to provide an absolute path. The absolute path is within the container (it will be created later on).

Assign the virtual folder

Assign the virtual folder to user(s) and/or group(s).

  • Edit a user or group
  • Go to Virtual folders section
  • Add a virtual folder, specifying:
    • the mount path: what the user(s) will see from an sftp client
    • select from the list the name of the desired virtual folder. In this example the virtual folder name for /dodo is I'm a virtual folder:
  • Submit the changes.

Access the virtual folder

The virtual folder is created once a user we have granted access to logins (for instance, using sftp from linux terminal, using SFTPGo webclient, etc.):

From what I can see, internally the local virtual folder and its contents are stored in:

/home/webserver1/.local/share/containers/storage/overlay/xxxxxxxxxxxxxxxxxxxx/diff/<your-folder-path>

NOTES:

  • webserver1, xxxxxxxxxxxxxxxxxxxx are examples and should be adapted according to your system.
  • Anything explained above comes from observation and therefore some of the interpretation could be wrong. For better source of information research the official documentation of NethServer and the documentation of each of the tools/apps in use (bearing in mind that some things that apply to apps installed on directly on local filesystem might be a little different on containerized apps: for instance, directory paths shown by the apps are not referencing the absolute / filesystem path but some other path within the container’s realm).

External resources:

2 Likes

If you are using ns8-dokuwiki app, it comes without sftpgo.

If you have configured SSH/SFTP access on the node beforehand, you could connect to it, transfer files to the app volume mount point (indicated on the dokuwiki instance status page) and chown/chmod them with correct ownership/permissions.

On your dokuwiki instance (user dokuwiki1…) there is an .ssh folder that can also be configured to connect directly to the instance if necessary by using public key authentication (as app users are passwordless, I guess with additional restrictions in place; note some could have nologin shell), by adding your public id_rsa key to the authorized_keys file and restarting sshd service), but maybe it’s enough doing it with your custom node user with sudo powers.

An alternative could be to use some dokuwiki plugin for the task, if there’s any.

Haven’t tried it though.

1 Like

Thank you for your feedback, and sorry for the delay, I was absent.

I will check all hints rapidly.

I cannot locate such directory.

root@ns8:~# ls /srv/sftpgo/
ls: cannot access '/srv/sftpgo/': No such file or directory
root@ns8:~# ls -lsa /srv
total 8
4 drwxr-xr-x  2 root root 4096 Nov 22 21:51 .
4 drwxr-xr-x 18 root root 4096 Mar  6 08:37 ..

I interpret this to mean that an essential installation result is missing.

If user’s home dir is customized not to be under /srv/sftpgo/data/ path, then the home path you specify is created under

I didn’t customize anything

root@ns8:~# ls -lsa /home/webserver1/.local/share/containers/storage/overlay/
ls: cannot access '/home/webserver1/.local/share/containers/storage/overlay/': No such file or directory
root@ns8:~# ls -lsa /home/webserver1/.local/share/containers/storage/
total 52
4 drwx------ 11 webserver1 webserver1 4096 Mar  6 07:30 .
4 drwx------  4 webserver1 webserver1 4096 Mar  6 07:29 ..
4 -rw-r--r--  1 webserver1 webserver1    8 Mar  6 07:29 defaultNetworkBackend
4 drwx------  2 webserver1 webserver1 4096 Mar  6 07:29 libpod
4 drwx------  2 webserver1 webserver1 4096 Mar  6 07:29 mounts
4 drwx------  2 webserver1 webserver1 4096 Mar  6 07:29 networks
4 -rw-r--r--  1 webserver1 webserver1   64 Mar  8 08:57 storage.lock
4 drwx------  2 webserver1 webserver1 4096 Mar  6 07:29 tmp
0 -rw-r--r--  1 webserver1 webserver1    0 Mar  6 07:29 userns.lock
4 drwx------  3 webserver1 webserver1 4096 Mar  6 07:29 vfs
4 drwx------  5 webserver1 webserver1 4096 Mar 11 01:31 vfs-containers
4 drwx------  6 webserver1 webserver1 4096 Mar  6 08:44 vfs-images
4 drwx------  2 webserver1 webserver1 4096 Mar 11 01:31 vfs-layers
4 drwx------  6 webserver1 webserver1 4096 Mar 11 01:31 volumes

I created the user sftpgo_marko.
Strangely enough, I cannot log on to WebAdmin with this user, bun in WebClient.
In WebClient I created a folder:

This folder also not exists.

That was the plan :face_with_hand_over_mouth:

my mount point is:

root@ns8:/home/dokuwiki4/.local/share/containers/storage/volumes/dokuwiki-data/_data

For this I want to upload the bak file to any directory created by SFTPgo.

I use backup tool to backup all ressources of my DokuWiki.

But there is no restore option of such created zip file.
Therefore I wanted to provide the zip file with SFTPgo and place it on console level in the above mentioned path and unzip it.

Hi Martin,
I’m certainly finding the switch to container-based architecture very difficult and hope that others find it easier so that semi-professional users like me don’t give up in discouragement and get lost as a target group for Nethserver.

In answer to your question: I have often asked myself whether it is possible to log into a container via ssh in order to work on the console as usual. I was thinking of data storage or editing configuration files. (The challenge with a Wordpress installation is still ahead of me…)
I have not yet found a way to do this.

If I use ssh webserver1@localhost I’m landing within my host/node1 again.

# ssh webserver1@localhostThe authenticity of host 'localhost (::1)' can't be established.

However, at least for my current case (DokuWiki) this does not seem to be necessary, as the data storage for DokuWiki takes place outside the container below the /home/dokuwiki4 path.
In all other cases, too, it seems to be the case that the data is not stored within containers. I hope the learning is not wrong. My head is pretty mixed up… Container, Docker, Podman…

When I started to tinker with VMs, i get lost fast into… networking. I was convinced that my laptop (quad core) at the time was enough, the same with 512mb of ram par guest, and magnetic storage. I were wrong.

After several year I got more or less a gist of what i can and I cannot do with VMs. Far from defining myself expert, but I think I can define myself familiar.

Container is not a VM.
Is bigger than a pure software, but smaller than an OS, even it has networking stack for allowing a lot of different setups and specific isolation, if necessary.
I don’t know how you like containers, but neverthless, they are here to stay, becase growing number of projects and companies are delivering containter rather than packages/installer for software. Can help to reduce a lot issues on install, deployment, migration, upgrade. I don’t like them that much, but probably it’s me and not them.

Simply… don’t use a container like a VM. Like using comibined wrench for opening a can. Probably you’ll succeed, however it will be a long, panicking and hassle-full experience.

1 Like

confirm if thats the name of the said installation you have kindly.

whats the name from your dashboard?

My only scope at the moment is to understand NS8 and to be able to administer it at some point.

I have not yet come into contact with container-based systems and hoped that as a Methuselam I would never have to do so. But you’re right, there’s no way around it.
Now I hope to be able to work my way along my tried and tested path of “try and error” using NS8 as an example.
I have no chance on a purely academic path.
But that necessarily leads to me having to annoy the community here with my low skill level.
I’ll only give up when you give up annoyed.

Excuse me please Martin, what do you mean with “dashboard”?

from this

or on the App status page, whats the defined name of the isntance

Afaik… NS8 is a podman-based container system for application deploy and configuration…

:clap:

image

If it is a User (not an Admin) that’s normal.
image

It doesn’t start from your OS / path but from a path within the linux user related to that container.
Either way, that is to share an existing folder (if I’m not mistaken), for instance one folder you created beforehand from “My files” section. Then, on the Share section, selecting the shared file or folder, you can get a link with the “Link” button image.

I can confirm that this directory <sftpgo_marko> exists

root@ns8:/home/webserver1/.local/share/containers/storage/volumes/websites/_data# ls -lsa
insgesamt 20
4 drwxr-xr-x 3 webserver1 webserver1 4096 11. Mär 09:05 .
4 drwx------ 3 webserver1 webserver1 4096  6. Mär 07:30 ..
4 -rw-r--r-- 1 webserver1 webserver1  497 24. Okt 18:48 50x.html
4 -rw-r--r-- 1 webserver1 webserver1  615 24. Okt 18:48 index.html
4 drwxr-xr-x 2 webserver1 webserver1 4096 11. Mär 09:05 sftpgo_marko

The directory is empty.
No /srv/sftpgo/data/username

for instance one folder you created beforehand from “My files” section. Then, on the Share section, selecting the shared file or folder, you can get a link with the “Link” button image.

I cannot find anything what look like this.

I’m really lost.
This is my configuration:

A “My files” section is not visible.

All added folders cannot be found…

Most likely I am using unauthorized local “root” directories.
So I ask again, what are recommended local “root” directories in which you could define your own subdirectories?

also here:

That path is from the point of view of the container. Real path on filesystem differs.

sftpgo_marko folder is the home folder for sftpgo_marko user. When accessing from sftp or sftpgo client you don’t see that folder name but “Home (house icon)”. So to speak, it is the landing folder for that user.
“My files” section appears when accessing the sftpgo web client (not on sftpgo web admin interface).

This are virtual folders. You first have to assign access to them to the desired “Users”. After that, at user login with an sftp client the folders will show-up for that user. The folder name the user will see will we the one you assigned for that user (even a path, as on the example with dodo & toto from the screenshots on my post above).
Bear in mind, the paths are from the poing of view of the container, they do not corresponde to the real path on the filesystem (i.e. if you created a folder at /home/marko from terminal, the container won’t see it).

1 Like