This is how I do it in Ubuntu.
Say we want to create the user “bram” to host one wallet, or as many users as you want.
First create as a privileged user a common Chia “installation” accesible to all users in /usr/local/share/chia-blockchain. That is to make easier future upgrades of the codebase. Usual install instructions for that.
Create a runnable script /usr/local/bin/start_chia.sh with this contents:
#!/bin/bash
cd /usr/local/share/chia-blockchain
. ./activate
cd
chia start wallet-only
Make it accesible and runnable to all users
chmod 755 /usr/local/bin/start_chia.sh
With this script any user can launch its own daemon and wallet process, but there is a problem, with the default configuration every wallet will have the same ports assigned so they will fail to start
So to configure each user’s wallet, you have to log in as that user and configure this way:
su - bram
cd /usr/local/share/chia-blockchain
. ./activate
cd
chia init
This creates the base configuration in ~/.chia/mainnet/config/config.yaml
Now copy the CA files from full node to ~/.chia/mainnet/config/ssl as if you were configuring a remote harvester, for the wallet to be able to communicate securely with the node
Edit ~/.chia/mainnet/config/config.yaml and make changes to the “wallet” section at the end of the file:
wallet:
...
full_node_peer:
host: IP_ADDRESS_OF_FULL_NODE
...
port: 8452
rpc_port: 9260
The fields “port” and “rpc_port” have to be unique to each wallet and unused by other wallets or applications. I simply increase them by one unit for each wallet (8451 and 9259, 8452 and 9260, etc)
Now you can start the wallet as bram user with /usr/local/bin/start_chia.sh, import your key with chia keys add and manage it with chia wallet command
Repeating the process with other users you can create as many wallets as you want, the only requirement is that the wallet ports need to be different for each user, started and managed independently for each user, etc.