Skip to content
Sorielle

Sorielle

Sorielle (hereinafter the “Application”) is a Discord bot that automatically deletes messages from a venting channel after a configurable timeout period, providing a safe space for users to express themselves with temporary visibility.

This section is for those interacting with a live instance of the Application.

You can add Sorielle to your Discord server using this invitation link.

  1. Purchase Server Subscription: Before configuring Sorielle, you need to purchase the server subscription from the Discord store.

  2. Configure Your Venting Channel: Use the /config command to set up your venting channel:

    • Select the text channel where messages should be automatically deleted
    • Set the timeout duration (in seconds) after which messages will be deleted
    • Ensure Sorielle has the necessary permissions: Manage Messages, View Channel, and Read Message History
  3. Using the Venting Channel: Once configured, any message sent to the designated venting channel will be automatically deleted after the specified timeout period.

  • /config <channel> <timeout>: Configure the venting channel and deletion timeout
  • /about: Learn more about Sorielle and get help information

If you need assistance or encounter issues:

This section is for those interested in running their own instance of the Application.

  • Node.js (compatible with Discord.js 14.21.0)
  • MongoDB database (via Prisma)
  • Discord bot token
  • Environment variables for configuration

Sorielle is built using:

  • Discord.js: Discord API interaction and bot framework
  • Prisma: Database ORM for MongoDB
  • Fastify: Web server for health monitoring and landing page
  • TypeScript: Type-safe development
  • Main Bot Logic (src/index.ts): Core Discord client setup and event handling
  • Message Handler (src/events/messageCreate.ts): Processes messages in venting channels and schedules deletions
  • Commands (src/commands/): Slash command implementations
  • Database Models: Prisma-managed MongoDB schema for storing server configurations
  • Web Server (src/server/serve.ts): Health monitoring endpoint on port 5019
  • Entitlement System (src/utils/checkEntitlement.ts): Validates server subscriptions
  1. Clone the repository
  2. Install dependencies: pnpm install
  3. Set up environment variables (Discord token, database URL)
  4. Generate Prisma client: prisma generate
  5. Build the project: pnpm run build
  6. Start the application: pnpm start

The application uses a vents table to store:

  • serverId: Discord server ID
  • channelId: Configured venting channel ID
  • ttl: Time-to-live for messages (in seconds)
  • Linting: pnpm run lint
  • Building: pnpm run build
  • Testing: pnpm run test (currently placeholder)

This section is for expansions to our legal policies specific to the Application.

This software is licensed under Naomi’s Public Licence. Full license terms are available at docs.spellware.dev.

Copyright held by Naomi Carrigan.

  • Sorielle stores minimal server configuration data (server ID, channel ID, timeout settings)
  • Messages are automatically deleted according to configured timeouts
  • No message content is permanently stored or logged
  • For detailed privacy policies, refer to PRIVACY.md

For complete terms of service, refer to TERMS.md.

For security-related concerns, please review SECURITY.md for our security policy and reporting procedures.

This section is for documentation related to contributing to the Application’s codebase.

Complete contributing guidelines are available at docs.spellware.dev.

Before interacting with our community, please read our Code of Conduct.

  • Language: TypeScript
  • Framework: Discord.js v14
  • Database: MongoDB with Prisma ORM
  • Package Manager: pnpm
  • Linting: ESLint with @nhcarrigan/eslint-config
  • src/commands/: Slash command implementations
  • src/events/: Discord event handlers
  • src/interfaces/: TypeScript interface definitions
  • src/modules/: Reusable modules and utilities
  • src/utils/: Utility functions (logging, error handling, entitlements)
  • src/config/: Configuration files
  • src/server/: Web server implementation
  1. Fork the repository
  2. Create a feature branch
  3. Make your changes following existing code patterns
  4. Ensure linting passes: pnpm run lint
  5. Test your changes thoroughly
  6. Submit a pull request

For development questions or support:

  • Discord Server
  • Discord forum channels (#bug-reports or #feature-requests) for bug reports and feature requests