This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Documentation

Foxnet is invite-only. While all information contained within this website is public, most of it is only relevant to existing members.

Welcome to the user documentation for Foxnet and the services provided by the project.

1 - Overview

Learn more about Foxnet.

What is Foxnet?

Foxnet is a project that operates free, invite-only communities built on top of popular open-source software and open protocols.

In practice, Foxnet makes services accessible to its members over the Internet, free of charge. Imagine Foxnet like Google, the company: Google provides services like Google Search, Google Docs, and Gmail to its users, just like Foxnet does to its members on a much smaller scale. Google is run by a for-profit corporation, while Foxnet is run by a single individual.

The software used for Foxnet’s services is not developed by Foxnet; Foxnet only hosts and curates instances of already available open-source software. You can look here for a list of Foxnet’s services.

Why is Foxnet Free?

Above all else, Foxnet is a passion project. For me, the host, joy is derived from seeing people use something that I put together myself instead of the Big Tech alternative, even if no money changes hands.

Of course, the infrastructure behind Foxnet is not free to maintain; if you would like to contribute, you can learn more about donating here.

How Can I Join?

Due to Foxnet’s invite-only nature, access isn’t granted to just anyone. Any existing member is currently able to vouch for a new member to be onboarded.

Additionally, while not an official procedure, you are free to shoot your shot at hello@foxnet.systems explaining how you came across Foxnet and why you should be trusted to become a member.

2 - Donations

Learn how to contribute to Foxnet.

While using Foxnet’s services is free, maintaining Foxnet’s infrastructure is not. The cost is simply offloaded to the project rather than its members. Every cloud resource, piece of hardware, and third-party service used by Foxnet is paid out of pocket.

If you have money to spare, you can donate to keep the project running using Liberapay. You can do so by clicking the button below:

If you cannot or don’t want to use Liberapay but you’d still like to donate, you can send an email to support@foxnet.systems or message the host privately to negotiate an alternative.

3 - Services

Services provided by Foxnet.

3.1 - Matrix

Matrix is an instant messaging protocol for decentralized communication.

What is Matrix?

Matrix is a protocol designed for instant messaging. It might seem a little different from anything you’ve seen before, in that it’s decentralized. But what does that mean, really?

The big difference compared to the kind of instant messaging you might be used to is that Matrix is not a platform in itself, but rather a network of independent platforms that talk to each other. This last “talk to each other” part is called federation. There is no central authority; each platform writes its own policies and decides who to federate with.

From matrix.org - Matrix for Instant Messaging:

Matrix works a little like email, but instantaneous and secure:

  • You need to register an account at a provider
  • Whatever your provider is, you can talk to people using other providers
  • In the same way you can use Outlook or Thunderbird with the same email account, you can use different Matrix apps for the same Matrix account.

Foxnet is one such platform or provider. In practice, Foxnet operates a server that speaks the Matrix protocol. This is called a homeserver.

From matrix.org - Elements of Matrix:

A homeserver is a piece of software hosting accounts of Matrix users. […] The accounts on a server have an identifier made of a local part (the username), and a server part, which is the […] domain of the homeserver. A typical identifier would be @username:example.com.

This identifier is called a Matrix ID (MXID). For accounts on the Foxnet homeserver, MXIDs look like @username:foxnet.systems, where username is the local part and foxnet.systems is the server part. Each account on the Foxnet homeserver is linked to a Foxnet account.

What Can Matrix Do?

Using Matrix, you can participate in communities just like you would if you were using a platform like Discord or Telegram: you can privately message other people, call them, join rooms, and create your own. All of this comes with optional end-to-end encryption so that the content of your messages can only be read by you and the recipients, even across different homeservers.

How Do I Start Using Matrix?

In order to use Matrix, you must find a suitable Matrix client to use. Foxnet provides a web client accessible at chat.foxnet.systems, which will be referenced as Foxnet Chat for the rest of the guide. More supported clients will be listed further below.

The first time you sign into the homeserver using your Foxnet account, a Matrix account is created for you, with your Foxnet account’s username as the local part of the MXID. The easiest way to sign in is by using Foxnet Chat: simply open the website, click on Continue with foxnet.systems, and step through the login process.

If the procedure was successful, you will have just registered a new device on your Matrix account. A device is a session that you create when you sign into a client and destroy when you log out of it.

Device Verification

New devices must always be verified by another device before they can access your encrypted message history. When you register your first device, you must generate a recovery key that you can later enter to verify a new device when no other devices are available to use. Assuming your first device is Foxnet Chat in the same browser you’re using to view this page, you can generate your recovery key here.

If you lose your recovery key and all your devices are destroyed or inaccessible, you will not be able to recover your encrypted message history and you must reset your cryptographic identity.

Rooms and Spaces

If you’re coming from Discord, you are probably familiar with these basic channel types: direct messages between two users, group chats between two or more users, and guild channels. In Matrix, there’s no difference between these three. Everything is a group chat, which Matrix calls rooms. Direct messages translate to an invite-only room with two members.

Rooms can be created to be either public or invite-only, and you can later configure them with an address that can be used by other Foxnet members (local address) or any Matrix user (published address) to find the room. Published addresses can freely be added to the homeserver’s room directory, a list of public rooms that can be browsed by any Matrix user. A room address looks like #room:example.com.

Rooms have a permission system where each member is assigned a power level (an integer) and each permission is assigned a minimum power level that a member must match or exceed in order to have that permission. For example: if the permission to send messages requires power level 50, then only room members whose power level is 50 or higher will be able to send messages.

By default, new room members start at power level 0 and permissions are set up such that power level 50 and 100 can perform moderator and administrator actions respectively. The creator of a room irrevocably receives infinite power level, and additional creators who will also receive that power can be selected during room creation. Room creators can never be added or removed afterwards. Power levels persist through leaving and rejoining a room.

Importantly, a member with the permission to set other members’ power levels can elevate anyone to their own power level. That is, someone with power level 100 can promote another member to power level 100. Be careful who you give dangerous permissions to!

Spaces are rooms that contain other rooms (including spaces). Room membership can be restricted to members of a space, so spaces can function like Discord guilds. The same room can be added to multiple spaces, and rooms do not inherit members or permissions from their parent spaces.

Finding Rooms and Users

When your Matrix account is created, you are automatically added to three rooms: #foxnet:foxnet.systems (a space), #announcements:foxnet.systems, and #chatroom:foxnet.systems. In the member list of these rooms, you can find every other account currently registered on the homeserver. External users cannot join these rooms. If you want to interact with users from other homeservers, you can start by joining our community room at #community:foxnet.systems.

To find new rooms to join, you can look through other homeservers’ room directories or search the list at matrixrooms.info. You can only message a user if you know their MXID.

Supported Clients

Matrix is an open protocol, so there are many other clients you can use instead of (or alongside) Foxnet Chat. You can use any amount of clients at the same time, so you don’t have to pick one and stick with it.

The most important part when bringing your own client is to make sure that you are logging into the right homeserver. Most clients default to matrix.org, but they always offer an option to use a custom homeserver. Read through the prompts carefully and enter foxnet.systems or your MXID when asked.

It has been determined that these clients work fine with the homeserver:

  • Sable (all platforms) - Sable features one of the UI designs most reminiscent of Discord among Matrix clients. It is the client used by Foxnet Chat and by far the one with the biggest feature set.
  • Element/Element X (all platforms) - Element and Element X are developed by the corporation that funds The Matrix.org Foundation. They are the sane defaults for desktop and mobile, but they don’t implement many secondary features like stickers, custom emoji, and status messages.
  • Fractal (Linux Flatpak) - Fractal is GNOME’s Matrix client. As beautiful as it is useless, it works to send and receive messages. GNOME knows best.
  • gomuks (Windows, macOS, Linux, Android) - gomuks is a modular, highly technical client for power users.

These clients work, but with issues:

  • FluffyChat (>=2.9.0, all platforms) - In order to log in using your Foxnet account, you must go to (three dots) > About > Advanced Configs, search for enableMatrixNativeOIDC, and make sure it is toggled on. Proceed as normal by returning to login, clicking Sign in, and entering foxnet.systems. Marking messages as read in rooms does not always work. FluffyChat is otherwise quite fully-featured.

These clients do NOT work:

  • Cinny - Cannot log in.
  • Nheko - Cannot log in.
  • Commet - Cannot log in.
  • NeoChat - Cannot log in.

Other clients may or may not work. If you have experience with a different client, let us know so that it can be added to this list!

4 - Account Management

How to manage your Foxnet account.

Onboarding and Credentials

During onboarding, you get to choose a username, display name, and primary email address for your account. Your chosen username can only contain lowercase letters (a-z), numbers (0-9), underscores (_), and periods (.), and cannot be changed for the lifetime of your account, save for extreme personal circumstances. You can request for your display name and primary email address to be changed at any time by contacting an administrator.

Accounts can be managed in the Foxnet Accounts portal. Following onboarding, you are directed to this portal to set up a way for you to log into your account. This mandatorily involves setting up multi-factor authentication on your account in one of the two following ways, or optionally both:

  • Passkey: a passkey is a secure, password-free way to log into a website using your device. When you create a passkey, it is stored in your device or browser’s configured password manager (like Google Password Manager or iCloud Keychain). You can use the same passkey across different devices only if they are configured with the same password manager and your password manager supports synchronizing credentials. Migrating passkeys between password managers is generally unsupported.

  • Password + TOTP: you first create a secure password for your account, then you scan the provided QR code using an authenticator app like Google Authenticator (Play Store, App Store) and enter the resulting six digit code (“TOTP”) into the respective field. When you log into your account, you’ll be asked to enter the TOTP before your password.

You are able to set or change your password and add or remove passkeys and registered authenticators in Profile > Credentials on your account dashboard. You will be asked to verify your identity before you’re allowed to make any changes.

Log In on a New Device Without Passkey

If you only configured a passkey for your account and you need to log in from a new device that cannot use said passkey, you can go to Profile > Enrol Device on your account dashboard and (after completing verification, if applicable) use the new device to either scan the QR code or visit the provided URL. This will allow you to create a passkey on the new device or set a password and configure an authenticator app.

Account Recovery

If you are unable to log into your account because you misplaced your credentials, you can initiate a password reset by by clicking Recover Account on the login page and entering your account’s email address. If the email address you entered is associated to an account, you will receive an email with a credential reset link from accounts-noreply@foxnet.systems, which will allow you to set or change your password and add or remove passkeys and registered authenticators.

Service-specific Accounts

When you sign into a service using your Foxnet account for the first time, a new account is created for that service and linked to your Foxnet account. The information you add to a service-specific account is largely independent from that of your Foxnet account; for example, changing your display name on a service does not change your Foxnet account’s display name, and vice versa.

Services like Matrix do not allow you to change your username from the one you were using when you signed up, even if your Foxnet account’s username changes. In this case, changing your username requires creating a new account on that service.

UNIX Password

When you attempt to access some services, you are not be redirected to accounts.foxnet.systems to log into your account, but instead you’re presented with a form where you must enter a username and a password. This only applies when there is no Sign in with Foxnet Accounts (or similar) button.

Logging into services that ask for a username and a password requires that you set a UNIX Password in Profile > Credentials on your account dashboard. You are encouraged to use a different password from your account’s primary one (if applicable). Make sure to click Save Changes at the bottom of the page after you’re finished. If you cannot find the UNIX Password section, it means your account is not configured to access these services.

Once you’ve set this password, you will be able to use it alongside your account’s username to log into these services. You must only ever input this password on websites whose domain ends with foxnet.systems.

5 - Code of Conduct

The baseline behavioral expectations for Foxnet members.

Our Pledge

We pledge to make our community welcoming, safe, and equitable for all.

We are committed to fostering an environment that respects and promotes the dignity, rights, and contributions of all individuals, regardless of characteristics including race, ethnicity, caste, color, age, physical characteristics, neurodiversity, disability, sex or gender, gender identity or expression, sexual orientation, language, philosophy or religion, national or social origin, socio-economic position, level of education, or other status. The same privileges of participation are extended to everyone who participates in good faith and in accordance with this Covenant.

Encouraged Behaviors

While acknowledging differences in social norms, we all strive to meet our community’s expectations for positive behavior. We also understand that our words and actions may be interpreted differently than we intend based on culture, background, or native language.

With these considerations in mind, we agree to behave mindfully toward each other and act in ways that center our shared values, including:

  1. Respecting the purpose of our community, our activities, and our ways of gathering.
  2. Engaging kindly and honestly with others.
  3. Respecting different viewpoints and experiences.
  4. Taking responsibility for our actions and contributions.
  5. Gracefully giving and accepting constructive feedback.
  6. Committing to repairing harm when it occurs.
  7. Behaving in other ways that promote and sustain the well-being of our community.

Restricted Behaviors

We agree to restrict the following behaviors in our community. Instances, threats, and promotion of these behaviors are violations of this Code of Conduct.

  1. Harassment. Violating explicitly expressed boundaries or engaging in unnecessary personal attention after any clear request to stop.
  2. Character attacks. Making insulting, demeaning, or pejorative comments directed at a community member or group of people.
  3. Stereotyping or discrimination. Characterizing anyone’s personality or behavior on the basis of immutable identities or traits.
  4. Sexualization. Behaving in a way that would generally be considered inappropriately intimate in the context or purpose of the community.
  5. Violating confidentiality. Sharing or acting on someone’s personal or private information without their permission.
  6. Endangerment. Causing, encouraging, or threatening violence or other harm toward any person or group.
  7. Behaving in other ways that threaten the well-being of our community.

Other Restrictions

  1. Misleading identity. Impersonating someone else for any reason, or pretending to be someone else to evade enforcement actions.
  2. Failing to credit sources. Not properly crediting the sources of content you contribute.
  3. Promotional materials. Sharing marketing or other commercial content in a way that is outside the norms of the community.
  4. Irresponsible communication. Failing to responsibly present content which includes, links or describes any other restricted behaviors.

Reporting an Issue

Tensions can occur between community members even when they are trying their best to collaborate. Not every conflict represents a code of conduct violation, and this Code of Conduct reinforces encouraged behaviors and norms that can help avoid conflicts and minimize harm.

When an incident does occur, it is important to report it promptly. To report a possible violation, you may message @rlarosa:foxnet.systems on Matrix or open a case at support@foxnet.systems.

Community Moderators take reports of violations seriously and will make every effort to respond in a timely manner. They will investigate all reports of code of conduct violations, reviewing messages, logs, and recordings, or interviewing witnesses and other participants. Community Moderators will keep investigation and enforcement actions as transparent as possible while prioritizing safety and confidentiality. In order to honor these values, enforcement actions are carried out in private with the involved parties, but communicating to the whole community may be part of a mutually agreed upon resolution.

Addressing and Repairing Harm

If an investigation by the Community Moderators finds that this Code of Conduct has been violated, the following enforcement ladder may be used to determine how best to repair harm, based on the incident’s impact on the individuals involved and the community as a whole. Depending on the severity of a violation, lower rungs on the ladder may be skipped.

  1. Warning
    1. Event: A violation involving a single incident or series of incidents.
    2. Consequence: A private, written warning from the Community Moderators.
    3. Repair: Examples of repair include a private written apology, acknowledgement of responsibility, and seeking clarification on expectations.
  2. Temporarily Limited Activities
    1. Event: A repeated incidence of a violation that previously resulted in a warning, or the first incidence of a more serious violation.
    2. Consequence: A private, written warning with a time-limited cooldown period designed to underscore the seriousness of the situation and give the community members involved time to process the incident. The cooldown period may be limited to particular communication channels or interactions with particular community members.
    3. Repair: Examples of repair may include making an apology, using the cooldown period to reflect on actions and impact, and being thoughtful about re-entering community spaces after the period is over.
  3. Temporary Suspension
    1. Event: A pattern of repeated violation which the Community Moderators have tried to address with warnings, or a single serious violation.
    2. Consequence: A private written warning with conditions for return from suspension. In general, temporary suspensions give the person being suspended time to reflect upon their behavior and possible corrective actions.
    3. Repair: Examples of repair include respecting the spirit of the suspension, meeting the specified conditions for return, and being thoughtful about how to reintegrate with the community when the suspension is lifted.
  4. Permanent Ban
    1. Event: A pattern of repeated code of conduct violations that other steps on the ladder have failed to resolve, or a violation so serious that the Community Moderators determine there is no way to keep the community safe with this person as a member.
    2. Consequence: Access to all community spaces, tools, and communication channels is removed. In general, permanent bans should be rarely used, should have strong reasoning behind them, and should only be resorted to if working through other remedies has failed to change the behavior.
    3. Repair: There is no possible repair in cases of this severity.

This enforcement ladder is intended as a guideline. It does not limit the ability of Community Managers to use their discretion and judgment, in keeping with the best interests of our community.

Scope

This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public or other spaces. Examples of representing our community include using an official email address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 3.0, permanently available at https://www.contributor-covenant.org/version/3/0/.

Contributor Covenant is stewarded by the Organization for Ethical Source and licensed under CC BY-SA 4.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/4.0/

For answers to common questions about Contributor Covenant, see the FAQ at https://www.contributor-covenant.org/faq. Translations are provided at https://www.contributor-covenant.org/translations. Additional enforcement and community guideline resources can be found at https://www.contributor-covenant.org/resources. The enforcement ladder was inspired by the work of Mozilla’s code of conduct team.

6 - Terms of Service

The agreement between Foxnet and its members.

Eligibility

Foxnet requires that all members are aged sixteen or older. By proceeding past onboarding, you confirm that all the information you provided is accurate.

Nature of the Service

Foxnet operates instances of open source software. Foxnet does not develop this software and is not responsible for its underlying design, security properties, or protocol limitations.

Some services operated by Foxnet interact with third-party servers via federation. Content shared in federated channels is guaranteed to be transmitted to and stored by servers outside of Foxnet’s control. Foxnet is not responsible for how this data is handled by third-party servers.

Acceptable Use

You may not use Foxnet’s services to:

  • violate applicable law;
  • harass, threaten, or abuse;
  • distribute malware, spam, or unsolicited bulk messages;
  • attempt to gain unauthorized access to Foxnet’s infrastructure or other members’ accounts;
  • impersonate another person or entity in a misleading way.

Availability

Foxnet is operated on a best-effort, non-commercial basis. Foxnet does not guarantee uptime, availability, or continuity of service, and may suspend or discontinue any service at any time, with or without notice.

Account Suspension and Termination

Foxnet may suspend or terminate a member’s access at its discretion, including for violations of these Terms. Members may request account deletion as described in the Privacy Policy. Account deletion is irreversible.

Content Responsibility

You are solely responsible for the content you send, upload, or publish through Foxnet’s services. Foxnet does not pre-screen content and does not endorse any content transmitted through its services.

No Warranty

Foxnet’s services are provided “as is,” without warranties of any kind, express or implied, including but not limited to fitness for a particular purpose or non-infringement.

Change Policy

The contents of this document may be updated at any time with prior notice to members. Continued use of Foxnet’s services after a change takes effect constitutes consent to the updated contents.

Governing Law

These Terms are governed by the laws of Italy. Should the need arise, EU members may refer to applicable EU consumer protection authorities.

Inquiries

For inquiries, you may contact support@foxnet.systems.

7 - Privacy Policy

How your data is used within Foxnet.

Foxnet is a project operated in Italy by Raul Larosa and is not registered as a business.

Foxnet membership is intended for individuals aged sixteen or older, and the data practices described in this document are governed by Regulation (EU) 2016/679 (“GDPR”). Should the need arise, EU citizens may file a complaint with their local data protection authority.

Data Collection

Foxnet collects and stores the following information:

  • Usernames, email addresses, hashed passwords, two-factor authentication secrets, and authentication tokens.
  • Display names, avatars, and user-authored profile fields.
  • Message content and metadata, uploaded files, channel membership, presence, and client application metadata.
  • Cryptographic public keys, IP addresses, and timestamped access logs.

Data Retention and Sharing

Due to the federated nature of some services hosted by Foxnet, the messages, profile data, and presence information of any member who chooses to interact with these services are guaranteed to be transmitted to a third-party server at some point in time. Foxnet cannot enforce data deletion on external systems, therefore such data is subject to the policies of the receiving servers and may persist indefinitely.

Data is stored for the sole purpose of:

  • authenticating member access and managing sessions;
  • routing messages;
  • troubleshooting and preventing abuse.

Data that can be erased is erased upon account deletion, but may persist in access logs for up to six months from when it was last logged. Passwords, two-factor authentication secrets, and authentication tokens are never logged or made available to the host. Data belonging to a deleted account may also persist in backups, but it is not considered readily available and will be erased if an offending backup is ever restored.

Service-specific accounts linked to a deleted account will be deleted or deactivated based on what the service allows. The Matrix protocol is append-only and does not support deleting historical data.

Data Storage and Access

While Foxnet and the services it provides do not make use of encryption at rest (i.e., most stored data is not encrypted), sensitive account credentials are never stored in plain text. For all intents and purposes, the host is capable of accessing plain text data in a database. Data is always encrypted in transit, and Foxnet uses services that support end-to-end encryption where possible.

Other Foxnet members and users of services that interact with Foxnet over federation may be able to access your profile details, presence, and message content as permitted by the service and channels you participate in. The content of messages protected by end-to-end encryption can only ever be accessed by the sender and the recipients.

Third-Party Processors

Account data and particular service-specific data are stored on the infrastructure of Hetzner Online GmbH. Email delivery is handled through Soverin B.V..

Data Export, Correction, and Deletion

Members may request a copy of the data Foxnet holds about them by contacting the host. Any such request is best-effort and is fulfilled manually. Members may also contact the host to correct inaccurate information on their account or request for their account to be deleted irreversibly.

Change Policy

The contents of this document may be updated at any time with prior notice to members. Continued use of Foxnet’s services after a change takes effect constitutes consent to the updated contents.

Inquiries

For inquiries, you may contact privacy@foxnet.systems.