Skip to content

Fix wiab demo instructions#60

Merged
mohitrajain merged 7 commits intomainfrom
fix-wiab-demo-instructions
Jun 19, 2025
Merged

Fix wiab demo instructions#60
mohitrajain merged 7 commits intomainfrom
fix-wiab-demo-instructions

Conversation

@mohitrajain
Copy link
Contributor

@mohitrajain mohitrajain commented Jun 18, 2025

Change type

  • Documentation change
  • Build pipeline change
  • Submodule update
  • Deployment change

Basic information

  • THIS CHANGE REQUIRES A WIRE-DOCS RELEASE NOW

Testing

  • I ran/applied the changes myself, in a test environment.

Tracking

  • I mentioned this PR in Jira, OR I mentioned the Jira ticket in this PR.
  • I mentioned this PR in one of the issues attached to one of our repositories.

Copy link
Contributor

@sghosh23 sghosh23 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good and I left few comments

### What will be installed?

- Wire-server (API)
- user accounts, authentication, conversations
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- user accounts, authentication, conversations
- user accounts
- authentication
- conversations

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

they are core features and are clubbed together as basic APIs, carry forwarded from old documentation

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's okay, since we are listing then why grouping them together with comma that was my point

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added them as core - user accounts, authentication, conversations

- Email relay service i.e. demo-smtp
- Group calling component i.e. coturn
- Ephemeral datastores in k8s
- A cert-manager with `letsencrypt` as `issuser`. As an alternative to providing your own certificate, you may want to allow for automated certificate issuing through Let’s Encrypt.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do need to phrase this As an alternative to providing your own certificate, you may want to allow for automated certificate issuing through Let’s Encrypt. here on the list?

A good candidate to be in its own section such as Benefits of using letsencrypt

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SSL/TLS certificates:
- a way to create SSL/TLS certificates for your domain name (to allow connecting via https://)
- To ease out the process of managing certs, we recommend using Let's Encrypt &
cert-manager

--- it is being talked in planning.md file which is starting point of this documentation:
https://github.com/wireapp/wire-docs/pull/60/files#diff-c73153d5e1b44f4727a457aae0f635e2922253659db169e31ca57b55609b5ff9R22

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, may be then we can omit this extra info regarding letsencrypt here as it feels like a repetition. When I am reading this i am asking this question to myself, is there a way to disallow the letsencrypt here and bring my own cert.

And the title says What will be installed? So I would just expect a list here and if the items on the list deserve description there can be another description section (that you already have in the planning to some extent) which can be linked to the list items.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got the idea, removed the description and keeping it simple as
A cert-manager withletsencryptasissuser.

- highly available k8s cluster

### Diagram
A demo installation will look a bit like this:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A demo installation will look a bit like this:
The flow diagram of the Demo setup


This guide provides detailed instructions for deploying a Demo Wire-in-a-Box (WIAB) using Ansible on an Ubuntu 24.04 system.

The deployment process is structured into multiple blocks within the Ansible playbook, offering flexibility in execution. It is designed to configure a remote node, such as example.com (referred to as deploy_node), to install Wire with a custom domain, example.com (referred to as target_domain).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it required for the user to know how the ansible playbook is designed? If so please rephrase this sentence:
It is designed to configure a remote node, such as example.com (referred to as deploy_node), to install Wire with a custom domain, example.com (referred to as target_domain).
Is the example.com referred as both deploy_node and target_domain ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I am trying to give an idea on what to expect when running the ansible-playbook.


These variables must be verified in the file [ansible/inventory/demo/host.yml](https://github.com/wireapp/wire-server-deploy/blob/master/ansible/inventory/demo/host.yml) before running the pipeline.

Typically, the deployment process runs seamlessly without requiring any external flags. However, if needed, you have the option to skip certain tasks based on their conditional flags.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Typically, the deployment process runs seamlessly without requiring any external flags. However, if needed, you have the option to skip certain tasks based on their conditional flags.
Typically, the deployment process runs seamlessly without requiring any external flags. However, if needed, you have the option to skip certain tasks by passing the conditional flags defined in the task.


## Deployment requirements:
- Clone of [wire-server-repository](https://github.com/wireapp/wire-server-deploy)
- The inventory file [host.yml](https://github.com/wireapp/wire-server-deploy/blob/master/ansible/inventory/demo/host.yml) (post cloning the previous repo) to update and verify the following default variables:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(post cloning the previous repo) is confusing here. is it wire-server-repository repo? May be omit this part from the sentence. The link of the hosts.yaml takes to that file. Or can be rephrased as:

Suggested change
- The inventory file [host.yml](https://github.com/wireapp/wire-server-deploy/blob/master/ansible/inventory/demo/host.yml) (post cloning the previous repo) to update and verify the following default variables:
- The inventory file [host.yml](https://github.com/wireapp/wire-server-deploy/blob/master/ansible/inventory/demo/host.yml) in the wire-server-deploy needs to be verified and updated with the following default variables:

## Deployment requirements:
- Clone of [wire-server-repository](https://github.com/wireapp/wire-server-deploy)
- The inventory file [host.yml](https://github.com/wireapp/wire-server-deploy/blob/master/ansible/inventory/demo/host.yml) (post cloning the previous repo) to update and verify the following default variables:
- ansible_host: aka **deploy_node** i.e. IP address or hostname of VM where Wire will be deployed (Mandatory)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- ansible_host: aka **deploy_node** i.e. IP address or hostname of VM where Wire will be deployed (Mandatory)
- ansible_host: aka **deploy_node** i.e. IP address or hostname of the VM where Wire will be deployed (Mandatory)

### Ansible run selective tasks
- You can use ^skip_ variables as environment variables to control the execution flow of the playbook. If these variables are passed, they will skip specific groups of tasks as explained in the [Deployment Flow](#deployment-flow) section. By default, if no variables are passed, all tasks will run in sequence.

In case of timeouts or any failures, you can skip tasks that have already been completed by passing the appropriate flags. For example, if the Wire artifact download task fails due to a timeout or disk space issue, you can skip the tasks that come before the Wire Artifact Download by using the following command:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In case of timeouts or any failures, you can skip tasks that have already been completed by passing the appropriate flags. For example, if the Wire artifact download task fails due to a timeout or disk space issue, you can skip the tasks that come before the Wire Artifact Download by using the following command:
In case of timeouts or other failures, you can skip tasks that have already been completed by passing the appropriate flags. For example, if the Wire artifact download task fails due to a timeout or a disk space issue, you can skip the preceding tasks by using the following command:

- a way to create SSL/TLS certificates for your domain name (to allow connecting via https://)
- To ease out the process of managing certs, we recommend using [Let\'s Encrypt](https://letsencrypt.org/getting-started/) &
[cert-manager](https://cert-manager.io/docs/tutorials/acme/http-validation/)
- Find a detailed explanation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think you missed here.

### What will not be installed?

- notifications over native push notifications via [FCM](https://firebase.google.com/docs/cloud-messaging/)/[APNS](https://developer.apple.com/notifications/)
- persistent datastores in k8s
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it k8s is redundant.


- notifications over native push notifications via [FCM](https://firebase.google.com/docs/cloud-messaging/)/[APNS](https://developer.apple.com/notifications/)
- persistent datastores in k8s
- highly available k8s cluster
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- highly available k8s cluster
- high availablity

For more detailed instructions on each task, please refer to the [Deployment Flow section](#deployment-flow).

## Deployment requirements:
- Clone of [wire-server-repository](https://github.com/wireapp/wire-server-deploy)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Clone of [wire-server-repository](https://github.com/wireapp/wire-server-deploy)
- Clone of [wire-server-deploy repository](https://github.com/wireapp/wire-server-deploy)


## Deployment requirements:
- Clone of [wire-server-repository](https://github.com/wireapp/wire-server-deploy)
- The inventory file [host.yml](https://github.com/wireapp/wire-server-deploy/blob/master/ansible/inventory/demo/host.yml) in the wire-server-deploy needs to be verified and updated with the following default variables:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- The inventory file [host.yml](https://github.com/wireapp/wire-server-deploy/blob/master/ansible/inventory/demo/host.yml) in the wire-server-deploy needs to be verified and updated with the following default variables:
- The inventory file [host.yml](https://github.com/wireapp/wire-server-deploy/blob/master/ansible/inventory/demo/host.yml) in the wire-server-deploy needs to be verified and updated with the following default variables:


### Iptables behaviour

- All the iptables rules are not persisted after reboots, but they can be regenerated by running the entire pipeline or restored from the `/home/ansible_user/wire-iptables-rules/rules_post_wire.v4` directory. Optionally, we can skip everything else when generating the rules again.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

restored from the... so, just CDing to that directory restores iptables rules, eh? :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, this is for the restart behavior, in case someone want to preserve the state post restart. They can use manual command or re-run the ansible-playbook to restore iptables rules.

@mohitrajain mohitrajain merged commit 00327de into main Jun 19, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants