diff --git a/Notes/tododolo.md b/Notes/tododolo.md index a3da3cd..df179aa 100644 --- a/Notes/tododolo.md +++ b/Notes/tododolo.md @@ -2,6 +2,7 @@ type: todo --- +- [ ] Personalausweis beantragen - [x] 1 hour of electronics - [x] Sketching List of Plants - [x] Papa nen Bild von meiner Unterschrift schicken diff --git a/Resources/dev/Wireguard.md b/Resources/dev/Wireguard.md index 7cd5645..50fc34b 100644 --- a/Resources/dev/Wireguard.md +++ b/Resources/dev/Wireguard.md @@ -5,4 +5,44 @@ 10.0.0.3 - c.h.apps 10.0.0.4 - MaxPix 10.0.0.5 - MaxBlade -10.0.0.6 - MaxMachine \ No newline at end of file +10.0.0.6 - MaxMachine + + +## Routing all traffic through wireguard + +To route all traffic through wireguard you need to specify that all IP addresses should be routed through a specified peer in your wireguard config: + +```config +[Interface] +... + +[Peer] +AllowedIPs=0.0.0.0/0, ::0/0 +``` + +The `0.0.0.0/0` is CIDR Syntax and defines a range the encompasses all IPv4 addresses, the `::0/0` Part defines a range for all Ipv6 addresses. + +On that peer you need to setup some PostUp/PreDown [[Resources/dev/iptables]] scripts that set it up so all traffic gets routed to the www. + + +```config +[Interface] +PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE +PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE + +PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE +PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE +``` + + +Here is a breakdown from ChatGPT on the iptables command: + +>* `iptables`: This is the command itself, indicating that you want to work with the iptables utility. +> +>* `-t nat`: This option specifies the table to which the rule will be added. In this case, the table is "nat," which stands for Network Address Translation. This table is used for configuring network address translation rules, such as masquerading or port forwarding. +> +>* `-I POSTROUTING`: This option inserts a new rule into the "POSTROUTING" chain. The POSTROUTING chain is part of the nat table and is responsible for modifying outgoing packets after they have been routed. It is commonly used for applying Network Address Translation (NAT) to outgoing connections. +> +>* `-o eth0`: This option specifies the outbound network interface for the rule. In this case, it is "eth0," which represents a specific network interface. You may need to replace "eth0" with the appropriate interface name for your system. +> +>* `-j MASQUERADE`: This option specifies the target action for the rule. In this case, it is "MASQUERADE." MASQUERADE is a type of Network Address Translation (NAT) that allows multiple devices on a local network to share a single public IP address when accessing the internet. It replaces the source IP address of outgoing packets with the IP address of the outbound interface, enabling two-way communication between the local network and external networks. \ No newline at end of file diff --git a/Resources/dev/iptables.md b/Resources/dev/iptables.md new file mode 100644 index 0000000..5524abd --- /dev/null +++ b/Resources/dev/iptables.md @@ -0,0 +1,3 @@ +# iptables + +The iptables command is a powerful firewall utility in Linux systems. It allows you to configure and manage firewall rules for network traffic. It provides a flexible framework for filtering, modifying, and redirecting packets, giving you control over incoming and outgoing network connections. \ No newline at end of file diff --git a/Resources/index.md b/Resources/index.md index a2d6cc6..1e28852 100644 --- a/Resources/index.md +++ b/Resources/index.md @@ -24,6 +24,9 @@ - [[Resources/mathematics/derivation/index|Derivation]] - [[Resources/mathematics/Proportional Integral Derivative|PID]] +## 📧 Marketing +- [[Resources/marketing/EmailAutomation]] + ## ⌨️ DEV - [[Resources/dev/tmux|TMUX]] - [[Resources/dev/networking|Networking]] diff --git a/Resources/marketing/EmailAutomation.md b/Resources/marketing/EmailAutomation.md new file mode 100644 index 0000000..81ee351 --- /dev/null +++ b/Resources/marketing/EmailAutomation.md @@ -0,0 +1,45 @@ +# Email Automation + +The idea is to follow up on user actions. For example, if a user signs up but then doesn’t use Ruumio for an extended amount of time, we want to ask if they need any help. + +## Segmentation +It’s important to segment the user base into interest groups because the emails are more personalized to the individual’s interests. Maybe this is not yet important for Ruumio because we do not have that many users 😥 + +## Personalization +Personalized emails have higher open and click-through rates. + +## A/B Testing +A/B Testing: Experiment with different subject lines, content, or calls to action to optimize your email performance. Split testing allows you to identify what resonates best with your audience. + +## Tracking +Track click-through rates, monitor which campaigns are doing well and which not so much. + + +## *Action Plan:* + +Find out what we want to achieve with the email campaigns +1. Generate new users +2. Convert existing users to paid users +3. Provide useful content regarding Ruumio/Workshops to our users +4. ...? + +Discover how we can do it technically? +1. Use N8N for most of the automation +2. Do we need to build a special API for N8N to access Ruumio to generate personalized emails/react to events +3. QStash do create send timed emails +4. How do we track open rates? Do we need to? Can we track links we put into the emails? + +Create a concept of what email/email automation we want to setup? +1. First follow up after one week + 2. Maybe we can find out if user used Ruumio or not +2. Success Emails? + 3. “Heyy you just created your first workshop” + 4. “Wow you invited 10 people to your workshop” +... + + +Setup technical infrastructure + +Setup email workflows + +Monitor diff --git a/Resources/mechanics/SPI.md b/Resources/mechanics/SPI.md index 4d571e5..f4ca090 100644 --- a/Resources/mechanics/SPI.md +++ b/Resources/mechanics/SPI.md @@ -23,5 +23,4 @@ graph LR A -->|MOSI| B B -->|MISO| A A -->|SS| B - ``` \ No newline at end of file