Disposable Session Messenger Setup: "send messages, not metadata" revisions

Go back to topic: Disposable Session Messenger Setup: "send messages, not metadata"

  1. v8 anchor; v8 full version
  2. v7 anchor; v7 full version
  3. v6 anchor; v6 full version
  4. v5 anchor; v5 full version
  5. v4 anchor; v4 full version
  6. v3 anchor; v3 full version
  7. v2 anchor; v2 full version

Revision #8

Edited on
2025-02-04
Edited by user
ephile
### Before following this guide, please read the [word of caution](https://forum.qubes-os.org/t/disposable-session-messenger-setup-send-messages-not-metadata/20443/19) below.

Revision #7

Edited on
2025-02-03
Edited by user
ephile
The following instructions demonstrate how to persist the SessionID while using disposableVMs. This setup will work well if you prefer ephemeral messaging. If you want messages to persist, then create an appVM based on `<template>` in place of the following setup. The following instructions demonstrate how to persist the SessionID while using disposableVMs. This setup will work well if you prefer ephemeral messaging. If you want messages to persist, it's easier to just create an appVM (non-disposable) based on `<template>` in place of the following setup.

Revision #6

Edited on
2025-02-02
Edited by user
ephile
- In `<dvm-template>` use `bind-dirs` to [make the above two files persist](https://qubes-os.org/doc/bind-dirs/#how-to-use-bind-dirssh). - In `<dvm-template>` use `bind-dirs` to [make the above two files persist](https://qubes-os.org/doc/bind-dirs/#how-to-use-bind-dirssh). (Note, `bind-dirs` on the /home directory is probably overkill here, but it works.)

Revision #5

Edited on
2025-02-02
Edited by user
ephile
- In `<dvm-template>` create a new directory, `/rw/config/Session`, and move the above two files to this location, where they will persist. - Add the following lines to the `rc.local` script. This will ensure that each disposable Session instance spawned by `<dvm-template>` is configured with the above SessionID from the get go. - In `<dvm-template>` use `bind-dirs` to [make the above two files persist](https://qubes-os.org/doc/bind-dirs/#how-to-use-bind-dirssh). - The following instructions will ensure that each disposable Session instance spawned by `<dvm-template>` is configured with the above SessionID from the get go.
[root@<dvm-template> ~]$ mkdir /rw/config/Session [root@<dvm-template> ~]$ mv /home/user/QubesIncoming/disp<#>/* /rw/config/Session/ [root@<dvm-template> ~]$ echo -e "mkdir -p /home/user/.config/Session/sql/\ncp /rw/config/Session/config.json /home/user/.config/Session/\ncp /rw/config/Session/db.sqlite /home/user/.config/Session/sql/\nsudo chown -R user /home/user/.config/Session" >> /rw/config/rc.local [root@<dvm-template> ~]$ mkdir -p /rw/config/qubes-bind-dirs.d [root@<dvm-template> ~]$ touch /rw/config/qubes-bind-dirs.d/50_user.conf [root@<dvm-template> ~]$ echo "binds+=( '/home/user/.config/Session/sql' )" >> /rw/config/qubes-bind-dirs.d/50_user.conf [root@<dvm-template> ~]$ echo "binds+=( '/home/user/.config/Session' )" >> /rw/config/qubes-bind-dirs.d/50_user.conf [root@<dvm-template> ~]$ mkdir -p /rw/bind-dirs/home/user/.config/Session/sql [root@<dvm-template> ~]$ mv /home/user/QubesIncoming/disp<#>/config.json /rw/bind-dirs/home/user/.config/Session/ [root@<dvm-template> ~]$ mv /home/user/QubesIncoming/disp<#>/db.sqlite /rw/bind-dirs/home/user/.config/Session/sql/ [root@<dvm-template> ~]$ echo "chown -R user /home/user/.config/Session" >> /rw/config/rc.local
[details="A quick check"] ` [root@<dvm-template> ~]$ cat /rw/config/rc.local` should include the following lines: > mkdir -p /home/user/.config/Session/sql/ > cp /rw/config/Session/config.json /home/user/.config/Session/ > cp /rw/config/Session/db.sqlite /home/user/.config/Session/sql/ > sudo chown -R user /home/user/.config/Session [/details]

Revision #4

Edited on
2024-03-15
Edited by user
ephile
root@<template>:~# apt install curl xfce4-notifyd qubes-core-agent-networking root@<template>:~# apt install curl xfce4-notifyd qubes-core-agent-networking glib-networking

Revision #3

Edited on
2024-03-15
Edited by user
ephile
In the following we will assume `<template>` is a clone of debian-11-minimal. In the following we will assume `<template>` is a clone of debian-12-minimal.
[user@dom0 ~]$ sudo qubesctl --skip-dom0 --targets=debian-11-minimal --show-output state.sls update.qubes-vm [user@dom0 ~]$ qvm-clone debian-11-minimal <template> [user@dom0 ~]$ sudo qubesctl --skip-dom0 --targets=debian-12-minimal --show-output state.sls update.qubes-vm [user@dom0 ~]$ qvm-clone debian-12-minimal <template>
root@<template>:~# echo "deb https://deb.oxen.io bullseye main" | tee /etc/apt/sources.list.d/oxen.list root@<template>:~# echo "deb https://deb.oxen.io bookworm main" | tee /etc/apt/sources.list.d/oxen.list

Revision #2

Edited on
2023-08-21
Edited by user
ephile
The following instructions demonstrate how to persist the SessionID while using disposableVMs. This setup will work well if you prefer ephemeral messaging. If you you want messages to persist, then create an appVM based on `<template>` in place of the following setup. The following instructions demonstrate how to persist the SessionID while using disposableVMs. This setup will work well if you prefer ephemeral messaging. If you want messages to persist, then create an appVM based on `<template>` in place of the following setup.