# Hacktoberfest!

**URL:** <https://forum.xx.network/t/hacktoberfest/7007>\
**Category:** News\
**Created:** [October 1, 2024, 5:20pm UTC](https://forum.xx.network/t/hacktoberfest/7007 "2024-10-01T17:20:56Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [October 1, 2024, 5:20pm UTC](https://forum.xx.network/t/hacktoberfest/7007/1 "2024-10-01T17:20:56Z")

</div>

We are excited to be tagging some of our projects for Hacktoberfest!

Sign up here to participate, contribute to our open source projects, and earn your customizable digital badge from Holopin:

> **[Auth | Hacktoberfest 2024](https://hacktoberfest.com/auth/)**
>
> Hacktoberfest: a month-long celebration of open-source projects, their maintainers, and the entire community of contributors.

Our tagged projects are on github here:

> **[Build software better, together](https://github.com/search?q=topic%3Ahacktoberfest%20org%3Axxfoundation&type=repositories)**
>
> GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.

Submit a PR, reply here to link your contribution, and we will check it out! We will also be monitoring these repositories for updates.

If you want to contribute to a project not on this list, let us know and we tag it for you so you can get credit.

---

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [October 4, 2024, 5:17pm UTC](https://forum.xx.network/t/hacktoberfest/7007/2 "2024-10-04T17:17:13Z")

</div>



---

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [October 16, 2024, 2:40pm UTC](https://forum.xx.network/t/hacktoberfest/7007/3 "2024-10-16T14:40:01Z")

</div>

We’re happy to be able to provide up to 500,000 xx in rewards for contributions made during Hacktoberfest.

To apply, simply copy and paste your merge request or your repository to this thread and explain what you did. We’ll judge submissions and give out awards in November.

Some suggested contributions with expected rewards:

1. Responsive UI for Haven (100,000 xx)
2. UI Fix for Haven (1,000 to 10,000 xx)
3. Fix for xxDK, or another core library (10,000 - 100,000 xx)
4. Haven \<\> Matrix relay bot (250,000 xx)

All community members are eligible for an award, except for anyone with an active contract with the xx foundation (i.e., myself, LordVetinari, Cryptowell, etc).

Happy Hacking

---

<div class="post-metadata">

**Author:** ![bradford](https://forum.xx.network/user_avatar/forum.xx.network/bradford/32/32_2.png) [@bradford](https://forum.xx.network/u/bradford)\
**Post date:** [October 17, 2024, 11:14am UTC](https://forum.xx.network/t/hacktoberfest/7007/4 "2024-10-17T11:14:27Z")

</div>

Very cool. This just runs through 31 Oct?

---

<div class="post-metadata">

**Author:** ![bradford](https://forum.xx.network/user_avatar/forum.xx.network/bradford/32/32_2.png) [@bradford](https://forum.xx.network/u/bradford)\
**Post date:** [October 17, 2024, 11:15am UTC](https://forum.xx.network/t/hacktoberfest/7007/5 "2024-10-17T11:15:51Z")

</div>

Also, where would the haven relay bot code go?

---

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [October 17, 2024, 12:31pm UTC](https://forum.xx.network/t/hacktoberfest/7007/6 "2024-10-17T12:31:41Z")

</div>

Good question, we will have to make a repository for it!

---

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [October 17, 2024, 12:32pm UTC](https://forum.xx.network/t/hacktoberfest/7007/7 "2024-10-17T12:32:27Z")

</div>

Yes but we will award anything posted before the 7th of november to honor the spirit of you probably having done the bulk of the work in October.

---

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [October 17, 2024, 4:07pm UTC](https://forum.xx.network/t/hacktoberfest/7007/8 "2024-10-17T16:07:49Z")

</div>

> **[GitHub - xxfoundation/xx-matrix-bridge: Message relay bridge from xx channels to matrix](https://github.com/xxfoundation/xx-matrix-bridge)**
>
> Message relay bridge from xx channels to matrix

Empty for now, if you’re interested file a PR and let me know here.

I’m also happy to take a look at a design (and give credit for however far you get, even if it doesn’t work).

---

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [October 21, 2024, 2:43pm UTC](https://forum.xx.network/t/hacktoberfest/7007/9 "2024-10-21T14:43:27Z")

</div>

Just some quick updates and responses to common questions:

1. We will start announcing awards next week inside this thread.
2. The last day to submit is November 8th.
3. The bounty was approved by the council, and will be funded on the next funding period in about 18 days: [Bounty Link](https://wallet.xx.network/#/bounties)
4. Awards will start going out after the bounty is funded, starting the week of November 11th, 2024.
5. Larger awards (\>50,000xx) will have a linear vest of 6-12 months. Smaller awards will not.
6. Yes, awards have KYC requirements.

---

<div class="post-metadata">

**Author:** ![bradford](https://forum.xx.network/user_avatar/forum.xx.network/bradford/32/32_2.png) [@bradford](https://forum.xx.network/u/bradford)\
**Post date:** [October 24, 2024, 9:44pm UTC](https://forum.xx.network/t/hacktoberfest/7007/10 "2024-10-24T21:44:53Z")

</div>

Re: relay bot - it doesn’t look like there’s a functional API in Haven, I suppose adding that would be part of it?

---

<div class="post-metadata">

**Author:** ![bradford](https://forum.xx.network/user_avatar/forum.xx.network/bradford/32/32_2.png) [@bradford](https://forum.xx.network/u/bradford)\
**Post date:** [October 24, 2024, 10:38pm UTC](https://forum.xx.network/t/hacktoberfest/7007/11 "2024-10-24T22:38:14Z")

</div>

A thought about Haven - It’s pretty cool that you can run a local instance that uses cmix. So if someone censors haven.xx.network, someone can just get the docker image and run it.

Any interest in using Github actions (or Gitlab CI) to build a docker image automatically for each major release? Then have a simple wiki article on how to run your own local haven.

Edit: I could do it as a PR pretty easily, but I understand you do most of your dev on gitlab. It could still run and be hosted by github, but of course dependent on updates / releases being pushed to github.

---

<div class="post-metadata">

**Author:** ![rothbardian](https://forum.xx.network/user_avatar/forum.xx.network/rothbardian/32/818_2.png) [@rothbardian](https://forum.xx.network/u/rothbardian)\
**Post date:** [October 26, 2024, 7:48am UTC](https://forum.xx.network/t/hacktoberfest/7007/12 "2024-10-26T07:48:30Z")

</div>

> [@bradford](#):
>
> Any interest in using Github actions (or Gitlab CI) to build a docker image automatically for each major release?

You should check out developers channel (on xx Network Discord) more often, a Docker image has been shared for 1.5 years now…

> **[GitHub - armchairancap/xx-haven-container: Container image for self-hosted xx Network...](https://github.com/armchairancap/xx-haven-container)**
>
> Container image for self-hosted xx Network Speakeasy (aka Haven) web app

---

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [October 26, 2024, 4:31pm UTC](https://forum.xx.network/t/hacktoberfest/7007/13 "2024-10-26T16:31:42Z")

</div>

We could do both, let me know what you need, update the readme, and submit a pr/mr.

---

<div class="post-metadata">

**Author:** ![bradford](https://forum.xx.network/user_avatar/forum.xx.network/bradford/32/32_2.png) [@bradford](https://forum.xx.network/u/bradford)\
**Post date:** [October 28, 2024, 12:28pm UTC](https://forum.xx.network/t/hacktoberfest/7007/14 "2024-10-28T12:28:46Z")

</div>

I’d prefer a docker image built by the foundation than a random on Github. But I do like their docker compose tor solution.

---

<div class="post-metadata">

**Author:** ![rothbardian](https://forum.xx.network/user_avatar/forum.xx.network/rothbardian/32/818_2.png) [@rothbardian](https://forum.xx.network/u/rothbardian)\
**Post date:** [October 28, 2024, 2:25pm UTC](https://forum.xx.network/t/hacktoberfest/7007/15 "2024-10-28T14:25:12Z")

</div>

A Dockerfile is already provided in the official Gitlab repo, as you know it’s just 1 line to build it and change the image link in Docker compose files (which I suggest to do in my README.md as the preferred option, by the way).

The time-consuming parts are Caddy/Traffic/Tor integration followed by Dockerfile maintenance (the official one is still based on NodeJS v16), tuning (e.g. I had NodeJS telemetry disabled since day 1 in late 2022), testing and documentation, all of which are tasks peripheral to building.

Anyway, it’d be nice to have the official image - I’ll just add another container image link option to my docs for those who don’t want to build their own.

---

<div class="post-metadata">

**Author:** ![bradford](https://forum.xx.network/user_avatar/forum.xx.network/bradford/32/32_2.png) [@bradford](https://forum.xx.network/u/bradford)\
**Post date:** [October 28, 2024, 2:48pm UTC](https://forum.xx.network/t/hacktoberfest/7007/16 "2024-10-28T14:48:58Z")

</div>

Oh I didn’t realize the solution was yours, nice work.

---

<div class="post-metadata">

**Author:** ![rothbardian](https://forum.xx.network/user_avatar/forum.xx.network/rothbardian/32/818_2.png) [@rothbardian](https://forum.xx.network/u/rothbardian)\
**Post date:** [October 28, 2024, 4:32pm UTC](https://forum.xx.network/t/hacktoberfest/7007/17 "2024-10-28T16:32:33Z")

</div>

Thank you.

By the way, I don’t mind the “random” characterization - it is kind of random, especially as I don’t disclose my real-life identity. It’s true that people should build their own container or use official images.

Unfortunately, there’s no way to way to create deterministic builds for Haven, so if people download some degree of “trust” is required.

I hope that ready-to-go container recipes and containers help builders more easily integrate with other apps and reach more home users (especially on ARM64).

At first I was using Gitlab but just couldn’t get automated container build workflow to work correctly (I think the related Gitlab issue is still open after 3 years…). Github is much better, but they didn’t have multi-arch container build workflows when I moved there, so I build at home and upload manually. I should revisit that to see if it works now.

---

<div class="post-metadata">

**Author:** ![rothbardian](https://forum.xx.network/user_avatar/forum.xx.network/rothbardian/32/818_2.png) [@rothbardian](https://forum.xx.network/u/rothbardian)\
**Post date:** [October 29, 2024, 7:19am UTC](https://forum.xx.network/t/hacktoberfest/7007/18 "2024-10-29T07:19:59Z")

</div>

Here’s what I got so far, @rick

1. Tribler with Haven in iFrame - good for one-off access to Haven chats with Magnet links, as the moment you copy Magnet link and leave chat, Haven loses state and logs you out which most people who didn’t login just to get one link and leave would find that annoying. But those who want a built-in way to lock their Haven session when they’re not accessing it may like this better.

> **[Release Tribler 8.0.2 with Haven 0.3.22 chat iFrame ·...](https://github.com/armchairancap/xx-tribler-haven/releases/tag/v1.0)**
>
> This experimental release runs Haven as an iFrame in Tribler UI.
> As xx\_README.md suggests (read it for additional details), that's inconvenient because navigating away from Haven iFrame loses Have...

 ![image](https://forum.xx.network/uploads/default/original/1X/ec083f0cb480a94624893338ad67f0f54b3cffcf.png)

1. Haven with Tribler in iFrame - better for multiple downloads and chat, as you don’t get logged out. It’s two minimal patches in `build` directory, one for Haven add an iFrame, another to Tribler to allow unauthenticated access from Haven IP/host (poor man’s workaround for proper cross-domain CORS). I’m still working on this but the patches (Haven, Tribler) are in the repo, screenshots and other details in README.md in `master`. I hope to create a Docker compose

The patches are just several LoC each:

> **[xx-tribler-haven/build at master · armchairancap/xx-tribler-haven](https://github.com/armchairancap/xx-tribler-haven/tree/master/build)**
>
> Proof-of-Concept for Tribler v8.0.1 with xx Network Haven - armchairancap/xx-tribler-haven

 ![image](https://forum.xx.network/uploads/default/original/1X/957e22a16c143daf427a32690b800626d6cbd13f.png)

1. Unrelated to (1) and (2), a Firefox toy add-on (with hard-coded vars in v1.0) that can be used from stand-alone Haven, but also in (2) above, for example. With this approach one can’t see what’s going on with Tribler but the upside is instead of right-click + Copy you can do right-click + Download and that’s all it takes. I need to add a settings page to make it useful (as Tribler settings are hard-coded now).  
[GitHub - armchairancap/xx-tribler-haven: Proof-of-Concept for Tribler v8.0.1 with xx Network Haven](https://github.com/armchairancap/xx-tribler-haven)

Screenshot of unpatched Haven in FF with the add-on in action:

 ![image](https://forum.xx.network/uploads/default/original/1X/423c7d652783749afebde6ba01f45bab259d41db.png)

Both 2 & 3 would benefit from Haven & Tribler in Docker compose, for Tribler API security and convenience reasons, so I’ll try to build it for (2).

---

<div class="post-metadata">

**Author:** ![bradford](https://forum.xx.network/user_avatar/forum.xx.network/bradford/32/32_2.png) [@bradford](https://forum.xx.network/u/bradford)\
**Post date:** [October 31, 2024, 1:49pm UTC](https://forum.xx.network/t/hacktoberfest/7007/19 "2024-10-31T13:49:52Z")

</div>

@rick - any info on this? The README.md says there’s a hello.ts, but that file isn’t in the repo. Is this future plans?

---

<div class="post-metadata">

**Author:** ![bradford](https://forum.xx.network/user_avatar/forum.xx.network/bradford/32/32_2.png) [@bradford](https://forum.xx.network/u/bradford)\
**Post date:** [October 31, 2024, 11:28pm UTC](https://forum.xx.network/t/hacktoberfest/7007/20 "2024-10-31T23:28:24Z")

</div>

I submitted PR #3 - Improve the Dockerfile and added a Github action for CI & to publish.

I see old gitlab CI scripts, but I don’t think the docker registry at docker-registry.xx.network is up or public.

> <https://github.com/xxfoundation/haven/pull/3>
>
> \### Dockerfile Updates
> fe8d0050d973b351662078f4bc603dc1e527baa6 - big update to… Dockerfile and local.Dockerfile. Both behave essentially the same way, except Dockerfile uses git to clone the git.xx.network repo. 
> 
> Using the \`node:20\` base image as a builder and \`node:20-slim\` as the production image. 
> 
> The primary reason, is the original Ubuntu 20 image has loads of vulnerabilities per Docker Scout:
> 
> !\[image\](https://github.com/user-attachments/assets/698465a7-52b4-4eb7-b394-511146d903b6)
> 
> The new image (with staging) is about half the size (1.2GB vs 2.6GB) and far fewer vulnerabilities per Docker Scout:
> 
> !\[image\](https://github.com/user-attachments/assets/904ee970-1026-464e-be1b-bd8da3803b22)
> 
> Eventually we should move the base image to \`node:lts\` but currently there's an issue that is interfering with the build process (see https://github.com/nodejs/docker-node/issues/1946)
> 
> \`Dockerfile\` tries to use \`npm ci\` (which will use \`package-lock.json\`) but falls back to \`npm install\`, since old branches/tags don't have package-lock.json.
> 
> \### Github Action - Automatically build and publish on v\* tags or on-demand
> 
> 418e0f72a75c57a0d3ded991754756d97bb45dcd - This action will:
> 
> \* Run on any push with a v\* tag and publish to ghcr.io with the appropriate tags/metadata
> \* Run on-demand on:
> 1. github.com - uses \`local.Dockerfile\` - check out a specific tag or branch, build and publish
> 2. git.xx.network - uses \`Dockerfile\` - gets the latest Dockerfile and passes in the branch/tag ref which then builds and publishes
>   
> You can see the dockerfiles I've built at https://github.com/dadatuputi/haven/pkgs/container/haven
> 
> The process for manual building looks like:
> 
> !\[image\](https://github.com/user-attachments/assets/035a324c-0e0f-414c-83a0-71a0d6522e11)
> 
> \### Other Commits
> 
> b0e10ca4d02120fb0920de0211f9c914112fa975 - optional npm run script (\`npm run build:analyze\`) that will produce some nice artifacts for future optimizations
> b6a706a84dcf0b244686ad73dc5ddc52e1feb5d6 - small optimization to move some dependencies to dev

[Next page](https://forum.xx.network/t/hacktoberfest/7007.md?page=2)
