TopFreeAlternative

- Free open source alternatives of paid software.

Paid software

Latest free open-source software collection:

CodeWhale logo
CodeWhale is a free, open-source alternative to Claude Code . Codewhale Codewhale is an open source coding agent for your terminal, built in Rust and improved in public with the people who use it. 简体中文 · 日本語 · Tiếng Việt · Bahasa Indonesia · 한국어 · Español · Português · Русский · Українська · Français · Deutsch · 繁體中文 · हिन्दी · Türkçe · Italiano · Polski · العربية · Català Install npm install -g codewhale codewhale The first run helps you connect a provider or stay offline. Codewhale also supports Cargo, Docker, Nix, Scoop, prebuilt archives, Android/Termux, and a CNB mirror. See the installation guide . Use Talk to Codewhale the same way you would talk to a teammate: Fix the failing tests and explain what changed. Or run a task without opening the TUI: codewhale exec " fix the failing tests and explain what changed " Codewhale can read your repository, edit files, run commands, inspect results, and keep working toward a goal. You decide how much access it has. Why Codewhale Use the model you want. Connect hosted providers or local models through Ollama, vLLM, or SGLang. Switch provider and model with /model . Stay in control. Plan is read-only. Ask, Auto-Review, and Full Access make approval behavior visible. /undo reverts the last turn and /restore returns the workspace to an earlier snapshot. Keep long work organized. Save sessions, set a durable /goal , review workflows before they run, and coordinate agents without turning their internal instructions into your transcript. Extend the agent you already have. Connect MCP servers and skills, configure hooks, and keep agent roles as readable files in your project or personal settings. Run /help in the TUI for commands and keyboard shortcuts. Safety Codewhale runs on your machine with the access you grant it. Approval modes and repository rules limit what the agent may do; optional OS sandboxing adds a stronger execution boundary where supported. Unknown model prices stay unknown instead of being reported as free. Read authorization order for the exact policy stack and configuration for local settings. Documentation Providers and local models Agent teams MCP , hooks , and configuration Local web client All documentation Join the community Codewhale gets better when people use it, report what feels wrong, and help fix it. If a provider is missing, a workflow is awkward, or the terminal UI gets in your way, open an issue . If you know how to improve it, open a pull request . First contributions are welcome, and contributors keep credit for the work that lands. Join the Discord , or add Hunter on WeChat ( hunterbown ) and ask to join the Whale Brothers group. Project history Codewhale began as deepseek-tui and still preserves that configuration and session compatibility. It is now provider-neutral and independently maintained; it is not affiliated with any model provider. Thanks to every contributor and to the open source communities that helped the project grow. See the contributor record . License MIT
FreeWindowsmacOSLinux
redis logo
redis is a free, open-source alternative to Redis Enterprise . This document serves as both a quick start guide to Redis and a detailed resource for building it from source. New to Redis? Start with What is Redis and Getting Started Ready to build from source? Jump to Build Redis from Source Want to contribute? See the Code contributions section and CONTRIBUTING.md Looking for detailed documentation? Navigate to redis.io/docs Table of contents What is Redis? Key use cases Why choose Redis? What is Redis Open Source? Getting started Redis starter projects Using Redis with client libraries Using Redis with redis-cli Using Redis with Redis Insight Redis data types, processing engines, and capabilities Cloud hosted Redis Community Build Redis from source Install dependencies and build Building Redis - flags and general notes Fixing build problems with dependencies or cached build options Fixing problems building 32 bit binaries Allocator Monotonic clock Verbose build Running Redis with TLS Code contributions Redis Trademarks What is Redis? For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine. Key use cases Redis excels in various applications, including: Caching: Supports multiple eviction policies, key expiration, and hash-field expiration. Distributed Session Store: Offers flexible session data modeling (string, JSON, hash). Data Structure Server: Provides low-level data structures (strings, lists, sets, hashes, sorted sets, JSON, etc.) with high-level semantics (counters, queues, leaderboards, rate limiters) and supports transactions & scripting. NoSQL Data Store: Key-value, document, and time series data storage. Search and Query Engine: Indexing for hash/JSON documents, supporting vector search, full-text search, geospatial queries, ranking, and aggregations via Redis Search. Event Store & Message Broker: Implements queues (lists), priority queues (sorted sets), event deduplication (sets), streams, and pub/sub with probabilistic stream processing capabilities. Vector Store for GenAI: Integrates with AI applications (e.g. LangGraph, mem0) for short-term memory, long-term memory, LLM response caching (semantic caching), and retrieval augmented generation (RAG). Real-Time Analytics: Powers personalization, recommendations, fraud detection, and risk assessment. Why choose Redis? Redis is a popular choice for developers worldwide due to its combination of speed, flexibility, and rich feature set. Here's why people choose Redis for: Performance: Because Redis keeps data primarily in memory and uses efficient data structures, it achieves extremely low latency (often sub-millisecond) for both read and write operations. This makes it ideal for applications demanding real-time responsiveness. Flexibility: Redis isn't just a key-value store, it provides native support for a wide range of data structures and capabilities listed in What is Redis? Extensibility: Redis is not limited to the built-in data structures, it has a modules API that makes it possible to extend Redis functionality and rapidly implement new Redis commands Simplicity: Redis has a simple, text-based protocol and well-documented command set Ubiquity: Redis is battle tested in production workloads at a massive scale. There is a good chance you indirectly interact with Redis several times daily Versatility : Redis is the de facto standard for use cases such as: Caching: quickly access frequently used data without needing to query your primary database Session management: read and write user session data without hurting user experience or slowing down every API call Querying, sorting, and analytics: perform deduplication, full text search, and secondary indexing on in-memory data as fast as possible Messaging and interservice communication: job queues, message brokering, pub/sub, and streams for communicating between services Vector operations: Long-term and short-term LLM memory, RAG content retrieval, semantic caching, semantic routing, and vector similarity search In summary, Redis provides a powerful, fast, and flexible toolkit for solving a wide variety of data management challenges. If you want to know more, here is a list of starting points: Introduction to Redis data types The full list of Redis commands Redis for AI Redis documentation What is Redis Open Source? Redis Community Edition (Redis CE) was renamed Redis Open Source with the v8.0 release. Redis Ltd. also offers Redis Software , a self-managed software with additional compliance, reliability, and resiliency for enterprise scaling, and Redis Cloud , a fully managed service integrated with Google Cloud, Azure, and AWS for production-ready apps. Read more about the differences between Redis Open Source and Redis here . Getting started If you want to get up and running with Redis quickly without needing to build from source, use one of the following methods: Redis Cloud Official Redis Docker images (Alpine/Debian) docker run -d -p 6379:6379 redis:latest Redis binary distributions Snap Homebrew RPM Debian Redis quick start guides If you prefer to build Redis from source - see instructions below. Redis starter projects To get started as quickly as possible in your language of choice, use one of the following starter projects: Python (redis-py) C#/.NET (NRedisStack/StackExchange.Redis) Go (go-redis) JavaScript (node-redis) Java/Spring (Jedis) Using Redis with client libraries To connect your application to Redis, you will need a client library. Redis has documented client libraries in most popular languages, with community-supported client libraries in additional languages. Python (redis-py) Python (RedisVL) C#/.NET (NRedisStack/StackExchange.Redis) JavaScript (node-redis) Java (Jedis) Java (Lettuce) Go (go-redis) PHP (Predis) C (hiredis) Full list of client libraries Using Redis with redis-cli redis-cli is Redis' command line interface. It is available as part of all the binary distributions and when you build Redis from source. You can start a redis-server instance, and then, in another terminal try the following: cd src ./redis-cli redis> ping PONG redis> set foo bar OK redis> get foo "bar" redis> incr mycounter (integer) 1 redis> incr mycounter (integer) 2 redis> Using Redis with Redis Insight For a more visual and user-friendly experience, use Redis Insight - a tool that lets you explore data, design, develop, and optimize your applications while also serving as a platform for Redis education and onboarding. Redis Insight integrates Redis Copilot , a natural language AI assistant that improves the experience when working with data and commands. Redis Insight documentation Redis Insight GitHub repository Redis data types, processing engines, and capabilities Redis provides a variety of data types, processing engines, and capabilities to support a wide range of use cases: String: Sequences of bytes, including text, serialized objects, and binary arrays used for caching, counters, and bitwise operations. JSON: Nested JSON documents that are indexed and searchable using JSONPath expressions and with Redis Search Array: Sparse, index-addressable collection of string values Hash: Field-value maps used to represent basic objects and store groupings of key-value pairs with support for hash field expiration (TTL) Redis Search: Use Redis as a document database, a vector database, a secondary index, and a search engine. Define indexes for hash and JSON documents and then use a rich query language for vector search, full-text search, geospatial queries, and aggregations. List: Linked lists of string values used as stacks, queues, and for queue management. Set: Unordered collection of unique strings used for tracking unique items, relations, and common set operations (intersections, unions, differences). Sorted set: Collection of unique strings ordered by an associated score used for leaderboards and rate limiters. Vector set (beta): Collection of vector embeddings used for semantic similarity search, semantic caching, semantic routing, and Retrieval Augmented Generation (RAG). Geospatial indexes: Coordinates used for finding nearby points within a given radius or bounding box. Bitmap: A set of bit-oriented operations defined on the string type used for efficient set representations and object permissions. Bitfield: Binary-encoded strings that let you set, increment, and get integer values of arbitrary bit length used for limited-range counters, numeric values, and multi-level object permissions such as role-based access control (RBAC) Hyperloglog: A probabilistic data structure for approximating the cardinality of a set used for analytics such as counting unique visits, form fills, etc. * Bloom filter: A probabilistic data structure to check if a given value is present in a set. Used for fraud detection, ad placement, and unique column (i.e. username/email/slug) checks. * Cuckoo filter: A probabilistic data structure for checking if a given value is present in a set while also allowing limited counting and deletions used in targeted advertising and coupon code validation. * t-digest: A probabilistic data structure used for estimating the percentile of a large dataset without having to store and order all the data points. Used for hardware/software monitoring, online gaming, network traffic monitoring, and predictive maintenance. * Top-k: A probabilistic data structure for finding the most frequent values in a data stream used for trend discovery. * Count-min sketch: A probabilistic data structure for estimating how many times a given value appears in a data stream used for sales volume calculations. Time series: Data points indexed in time order used for monitoring sensor data, asset tracking, and predictive analytics Pub/sub : A lightweight messaging capability. Publishers send messages to a channel, and subscribers receive messages from that channel. Stream : An append-only log with random access capabilities and complex consumption strategies such as consumer groups. Used for event sourcing, sensor monitoring, and notifications. Transaction: Allows the execution of a group of commands in a single step. A request sent by another client will never be served in the middle of the execution of a transaction. This guarantees that the commands are executed as a single isolated operation. Programmability: Upload and execute Lua scripts on the server. Scripts can employ programmatic control structures and use most of the commands while executing to access the database. Because scripts are executed on the server, reading and writing data from scripts is very efficient. Cloud hosted Redis Fully-managed Redis with real-time performance at scale. Redis Cloud Community Redis Community Resources Build Redis from source This section refers to building Redis from source. If you want to get up and running with Redis quickly without needing to build from source see the Getting started section . These instructions apply to Redis 8.10 and above. For versions lower than 8.10, see the 8.8 build instructions . Configuration files : the build steps below tell you to run ./src/redis-server redis.conf . Release tarballs bake the bundled modules' loadmodule lines and per-module settings directly into redis.conf during packaging, so an extracted release tarball is ready to run as-is. When building from a git checkout instead, that module config lives in the auto-generated redis-full.conf produced by make modules-update (and regenerated by make sync-redis-conf ) — run ./src/redis-server redis-full.conf there. Edit Redis-core settings in redis.conf . See modules/MODULES.md for the full config flow. Install dependencies and build Building Redis with all data structures (JSON, time series, Bloom / cuckoo / count-min / top-k, t-digest, and the Query Engine) needs a build toolchain plus a few version-sensitive dependencies — GCC/Clang, LLVM 21 , CMake 3.25–3.31.6 , Rust 1.94 , OpenSSL, Python 3, and assorted -dev libraries. Instead of a per-OS package list, the repo installs them for you with make bootstrap , which detects your OS and installs each bundled module's prerequisites. CMake version range matters. The modules require 3.25 ≤ CMake ≤ 3.31.6 — CMake 4.x is not supported and the build will fail with it. On distros that ship CMake 4.x by default (e.g. Ubuntu 26.04), pin a supported version, e.g. pip3 install 'cmake==3.31.6' . Note make bootstrap only installs CMake when it's missing or too old; it won't downgrade a pre-installed 4.x, so remove/pin that yourself. 1. Get the source Either works — the release tarball already bundles the module sources; a git checkout needs one extra step to fetch them: # A) Release tarball (recommended for building/running a release). # Replace <version>, e.g. 8.10.0 — extracts into redis-<version>/: wget -O redis- < version > .tar.gz https://github.com/redis/redis/releases/download/ < version > /redis-full.tar.gz tar xvf redis- < version > .tar.gz && cd redis- < version > # B) git checkout — clone the bundled modules once: git clone https://github.com/redis/redis.git && cd redis make modules-update 2. Install the build dependencies Pick whichever option fits your environment: Build inside the Docker build environment — recommended. The repo ships docker/Dockerfile.noble (Ubuntu 24.04) with every prerequisite baked in, so you build inside the container and never touch your host toolchain: docker build -f docker/Dockerfile.noble -t redis-build:noble . # Multi-arch (requires `docker buildx` configured): docker buildx build --platform linux/amd64,linux/arm64 \ -f docker/Dockerfile.noble -t redis-build:noble . # Build with the working tree mounted: docker run --rm -it -v " $PWD " :/workspace -w /workspace redis-build:noble \ bash -lc ' make -j"$(nproc)" && make run ' Install everything on a fresh machine or container. On a clean environment (for example a throwaway ubuntu:24.04 container), let bootstrap install every prerequisite for Redis core and all cloned modules: make bootstrap ⚠️ make bootstrap installs system packages and may override existing versions of shared tools (compiler, CMake, LLVM, …). Prefer option 1, or run it in a disposable container, if that matters on your machine. See only what's missing. To inspect which prerequisites are absent before installing anything, print one deduped list across Redis core and all modules: make bootstrap list Then install just the reported packages yourself. (Version-gated deps are shown as name (>= X) ; optional test/coverage deps are listed separately and don't fail the check.) Get the exact install commands to copy-paste. To run exactly what make bootstrap would, but only for the missing dependencies, use dry-run — it prints the precise install command for each missing dependency and installs nothing: make bootstrap dry-run The commands are printed per module , so a dependency shared by several modules appears once for each. Work through them iteratively: Copy-paste the commands for a module to install its dependencies. Re-run make bootstrap dry-run — the deps you just installed no longer show, so you now see only what's still missing for the remaining modules. Repeat until make bootstrap dry-run prints no install commands. Manual, per-OS install (no Docker, and you'd rather not let make bootstrap touch your host): follow the per-OS dependency instructions in the 8.8 README, which still lists them explicitly — https://github.com/redis/redis/tree/8.8#readme . 3. Build and run export BUILD_TLS=yes # optional — TLS support (needs OpenSSL dev libs) make -j " $( nproc ) " # Release tarball (module config is baked into redis.conf): ./src/redis-server redis.conf # From a git checkout, use the auto-generated module config instead: ./src/redis-server redis-full.conf make (same as make build / make all ) builds whatever is cloned under modules/*/src alongside Redis core. To build just the core data structures — even with modules cloned — use make build redis . Building Redis - flags and general notes Redis can be compiled and used on Linux, OSX, OpenBSD, NetBSD, FreeBSD. We support big endian and little endian architectures, and both 32 bit and 64-bit systems. It may compile on Solaris derived systems (for instance SmartOS) but our support for this platform is best effort and Redis is not guaranteed to work as well as on Linux, OSX, and *BSD. To build Redis with all the data structures (including JSON, time series, Bloom filter, cuckoo filter, count-min sketch, top-k, and t-digest) and with Redis Query Engine, make sure first that all the prerequisites are installed (see Install dependencies and build above), then clone the bundled modules once and build: make modules-update make make (same as make build / make all ) always builds whatever's cloned under modules/*/src alongside Redis core — there's no separate flag to opt in. If nothing is cloned yet, you get a core-only build. To build Redis with just the core data structures — even if modules are already cloned — use: make build redis To build with TLS support, you need OpenSSL development libraries (e.g. libssl-dev on Debian/Ubuntu) and the following flag in the make command: make BUILD_TLS=yes To build with systemd support, you need systemd development libraries (such as libsystemd-dev on Debian/Ubuntu or systemd-devel on CentOS), and the following flag: make USE_SYSTEMD=yes To append a suffix to Redis program names, add the following flag: make PROG_SUFFIX= " -alt " You can build a 32 bit Redis binary using: make 32bit After building Redis, it is a good idea to test it using: make test If TLS is built, running the tests with TLS enabled (you will need tcl-tls installed): ./utils/gen-test-certs.sh ./runtest --tls Redis supports compression of replication stream via zstd as of 8.10. To build with compression support you have to install zstd development libraries (e.g libzstd-dev on Debian/Ubuntu) and use the following flag when invoking the make command: make BUILD_COMPRESSION=yes Fixing build problems with dependencies or cached build options Redis has some dependencies which are included in the deps directory. make does not automatically rebuild dependencies even if something in the source code of dependencies changes. When you update the source code with git pull or when code inside the dependencies tree is modified in any other way, make sure to use the following command in order to really clean everything and rebuild from scratch: make distclean This will clean: jemalloc, lua, hiredis, linenoise and other dependencies. Also, if you force certain build options like 32bit target, no C compiler optimizations (for debugging purposes), and other similar build time options, those options are cached indefinitely until you issue a make distclean command. Fixing problems building 32 bit binaries If after building Redis with a 32 bit target you need to rebuild it with a 64 bit target, or the other way around, you need to perform a make distclean in the root directory of the Redis distribution. In case of build errors when trying to build a 32 bit binary of Redis, try the following steps: Install the package libc6-dev-i386 (also try g++-multilib). Try using the following command line instead of make 32bit : make CFLAGS="-m32 -march=native" LDFLAGS="-m32" Allocator Selecting a non-default memory allocator when building Redis is done by setting the MALLOC environment variable. Redis is compiled and linked against libc malloc by default, except for jemalloc being the default on Linux systems. This default was picked because jemalloc has proven to have fewer fragmentation problems than libc malloc. To force compiling against libc malloc, use: make MALLOC=libc To compile against jemalloc on Mac OS X systems, use: make MALLOC=jemalloc Monotonic clock By default, Redis will build using the POSIX clock_gettime function as the monotonic clock source. On most modern systems, the internal processor clock can be used to improve performance. Cautions can be found here: http://oliveryang.net/2015/09/pitfalls-of-TSC-usage/ On ARM aarch64 systems, the hardware clock is enabled by default because the ARM Generic Timer is architecturally guaranteed to be available and monotonic on all ARMv8-A processors (see the “The Generic Timer in AArch64 state” section of the Arm Architecture Reference Manual for Armv8-A ). To build with support for the processor's internal instruction clock on other architectures, use: make CFLAGS= " -DUSE_PROCESSOR_CLOCK " Verbose build Redis will build with a user-friendly colorized output by default. If you want to see a more verbose output, use the following: make V=1 Running Redis with TLS Please consult the TLS.md file for more information on how to use Redis with TLS. Running Redis with the Query Engine and optional proprietary Intel SVS-VAMANA optimisations License Disclaimer If you are using Redis Open Source under AGPLv3 or SSPLv1, you cannot use it together with the Intel Optimizations (Leanvec and LVQ binaries). The reason is that the Intel SVS license is not compatible with those licenses. The Leanvec and LVQ techniques are closed source and are only available for use with Redis Open Source when distributed under the RSALv2 license. For more details, please refer to the information provided by Intel here . By default, Redis with the Redis Query Engine supports SVS-VAMANA index with global 8-bit quantisation. To compile Redis with the Intel SVS-VAMANA optimisations, LeanVec and LVQ, use the following: make BUILD_INTEL_SVS_OPT=yes Alternatively, you can export the variable before running the build step for your platform: export BUILD_INTEL_SVS_OPT=yes make Code contributions By contributing code to the Redis project in any form, including sending a pull request via GitHub, a code fragment or patch via private email or public discussion groups, you agree to release your code under the terms of the Redis Software Grant and Contributor License Agreement. Please see the CONTRIBUTING.md file in this source distribution for more information. For security bugs and vulnerabilities, please see SECURITY.md and the description of the ability of users to backport security patches under Redis Open Source 7.4+ under BSDv3. Open Source Redis releases are subject to the following licenses: Version 7.2.x and prior releases are subject to BSDv3. These contributions to the original Redis core project are owned by their contributors and licensed under the 3BSDv3 license as referenced in the REDISCONTRIBUTIONS.txt file. Any copy of that license in this repository applies only to those contributions; Versions 7.4.x to 7.8.x are subject to your choice of RSALv2 or SSPLv1; and Version 8.0.x and subsequent releases are subject to the tri-license RSALv2/SSPLv1/AGPLv3 at your option as referenced in the LICENSE.txt file. Redis Trademarks The purpose of a trademark is to identify the goods and services of a person or company without causing confusion. As the registered owner of its name and logo, Redis accepts certain limited uses of its trademarks, but it has requirements that must be followed as described in its Trademark Guidelines available at: https://redis.io/legal/trademark-policy/ .
FreeWindowsmacOSLinux
firecracker logo
firecracker is a free, open-source software / service you can self-host or use without paying. Our mission is to enable secure, multi-tenant, minimal-overhead execution of container and function workloads. Read more about the Firecracker Charter here . What is Firecracker? Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models. Firecracker runs workloads in lightweight virtual machines, called microVMs, which combine the security and isolation properties provided by hardware virtualization technology with the speed and flexibility of containers. Overview The main component of Firecracker is a virtual machine monitor (VMM) that uses the Linux Kernel Virtual Machine (KVM) to create and run microVMs. Firecracker has a minimalist design. It excludes unnecessary devices and guest-facing functionality to reduce the memory footprint and attack surface area of each microVM. This improves security, decreases the startup time, and increases hardware utilization. Firecracker has also been integrated in container runtimes, for example Kata Containers and Flintlock . Firecracker was developed at Amazon Web Services to accelerate the speed and efficiency of services like AWS Lambda and AWS Fargate . Firecracker is open sourced under Apache version 2.0 . To read more about Firecracker, check out firecracker-microvm.io . Getting Started To get started with Firecracker, download the latest release binaries or build it from source. You can build Firecracker on any Unix/Linux system that has Docker running (we use a development container) and bash installed, as follows: git clone https://github.com/firecracker-microvm/firecracker cd firecracker tools/devtool build toolchain= " $( uname -m ) -unknown-linux-musl " The Firecracker binary will be placed at build/cargo_target/${toolchain}/debug/firecracker . For more information on building, testing, and running Firecracker, go to the quickstart guide . The overall security of Firecracker microVMs, including the ability to meet the criteria for safe multi-tenant computing, depends on a well configured Linux host operating system. A configuration that we believe meets this bar is included in the production host setup document . Contributing Firecracker is already running production workloads within AWS, but it's still Day 1 on the journey guided by our mission . There's a lot more to build and we welcome all contributions. To contribute to Firecracker, check out the development setup section in the getting started guide and then the Firecracker contribution guidelines . Releases New Firecracker versions are released via the GitHub repository releases page, typically every two or three months. A history of changes is recorded in our changelog . The Firecracker release policy is detailed here . Design Firecracker's overall architecture is described in the design document . Features & Capabilities Firecracker consists of a single micro Virtual Machine Manager process that exposes an API endpoint to the host once started. The API is specified in OpenAPI format . Read more about it in the API docs . The API endpoint can be used to: Configure the microvm by: Setting the number of vCPUs (the default is 1). Setting the memory size (the default is 128 MiB). Configuring a CPU template . Add one or more network interfaces to the microVM. Add one or more read-write or read-only disks to the microVM, each represented by a file-backed block device. Trigger a block device re-scan while the guest is running. This enables the guest OS to pick up size changes to the block device's backing file. Change the backing file for a block device, before or after the guest boots. Configure rate limiters for virtio devices which can limit the bandwidth, operations per second, or both. Configure the logging and metric system. [BETA] Configure the data tree of the guest-facing metadata service. The service is only available to the guest if this resource is configured. Add a vsock socket to the microVM. Add a entropy device to the microVM. Add a pmem device to the microVM. Configure and manage memory hotplugging . [Developer Preview] Hot-plug and hot-unplug virtio PCI devices while the VM is running. Start the microVM using a given kernel image, root file system, and boot arguments. [x86_64 only] Stop the microVM. Built-in Capabilities : Demand fault paging and CPU oversubscription enabled by default. Advanced, thread-specific seccomp filters for enhanced security. Jailer process for starting Firecracker in production scenarios; applies a cgroup/namespace isolation barrier and then drops privileges. Tested platforms We test all combinations of: Instance Host OS & Kernel Guest Rootfs Guest Kernel m5n.metal (Intel Cascade Lake) al2 linux_5.10 ubuntu 24.04 linux_5.10 m6i.metal (Intel Ice Lake) al2023 linux_6.1 linux_6.1 al2023 linux_6.18 m7i.metal-24xl (Intel Sapphire Rapids) m7i.metal-48xl (Intel Sapphire Rapids) m8i.metal-48xl (Intel Granite Rapids)* m8i.metal-96xl (Intel Granite Rapids)* m6a.metal (AMD Milan) m7a.metal-48xl (AMD Genoa) m6g.metal (Graviton 2) m7g.metal (Graviton 3) m8g.metal-24xl (Graviton 4) m8g.metal-48xl (Graviton 4) * : We only support AWS EC2 8th Gen Intel (*8i) instances using a 6.1 or 6.18 host kernel. This is due to poor kernel support for Granite Rapids CPUs on 5.10. Known issues and Limitations The pl031 RTC device on aarch64 does not support interrupts, so guest programs which use an RTC alarm (e.g. hwclock ) will not work. Performance Firecracker's performance characteristics are listed as part of the specification documentation . All specifications are a part of our commitment to supporting container and function workloads in serverless operational models, and are therefore enforced via continuous integration testing. Policy for Security Disclosures The security of Firecracker is our top priority. If you suspect you have uncovered a vulnerability, contact us privately, as outlined in our security policy document ; we will immediately prioritize your disclosure. FAQ & Contact Frequently asked questions are collected in our FAQ doc . You can get in touch with the Firecracker community in the following ways: Security-related issues, see our security policy document . Chat with us on our Slack workspace Note: most of the maintainers are on a European time zone. Open a GitHub issue in this repository. Email the maintainers at [email protected] . When communicating within the Firecracker community, please mind our code of conduct .
FreeLinux
AdGuardHome logo
AdGuardHome is a free, open-source alternative to NextDNS . Privacy protection center for you and your devices Free and open source, powerful network-wide ads & trackers blocking DNS server. AdGuard.com | Wiki | Reddit | Twitter | Telegram AdGuard Home is a network-wide software for blocking ads and tracking. After you set it up, it'll cover ALL your home devices, and you don't need any client-side software for that. It operates as a DNS server that re-routes tracking domains to a “black hole”, thus preventing your devices from connecting to those servers. It's based on software we use for our public AdGuard DNS servers, and both share a lot of code. Getting Started Automated install (Linux/Unix/MacOS/FreeBSD/OpenBSD) Alternative methods Guides API Comparing AdGuard Home to other solutions How is this different from public AdGuard DNS servers? How does AdGuard Home compare to Pi-Hole How does AdGuard Home compare to traditional ad blockers Known limitations How to build from source Prerequisites Building Contributing Test unstable versions Reporting issues Help with translations Other Projects that use AdGuard Home Acknowledgments Privacy Getting Started Automated install (Linux/Unix/MacOS/FreeBSD/OpenBSD) To install with curl run the following command: curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v To install with wget run the following command: wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v To install with fetch run the following command: fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v The script also accepts some options: -c <channel> to use specified channel; -r to reinstall AdGuard Home; -u to uninstall AdGuard Home; -v for verbose output. Note that options -r and -u are mutually exclusive. Alternative methods Manual installation Please read the Getting Started article on our Wiki to learn how to install AdGuard Home manually, and how to configure your devices to use it. Docker You can use our official Docker image on Docker Hub . Snap Store If you're running Linux, there's a secure and easy way to install AdGuard Home: get it from the Snap Store . Guides See our Wiki . API If you want to integrate with AdGuard Home, you can use our REST API . Alternatively, you can use this python client , which can be used to build the AdGuard Home Assistant integration . Comparing AdGuard Home to other solutions How is this different from public AdGuard DNS servers? Running your own AdGuard Home server allows you to do much more than using a public DNS server. It's a completely different level. See for yourself: Choose what exactly the server blocks and permits. Monitor your network activity. Add your own custom filtering rules. Most importantly, it's your own server, and you are the only one who's in control. How does AdGuard Home compare to Pi-Hole At this point, AdGuard Home has a lot in common with Pi-Hole. Both block ads and trackers using the so-called “DNS sinkholing” method and both allow customizing what's blocked. Note We're not going to stop here. DNS sinkholing is not a bad starting point, but this is just the beginning. AdGuard Home provides a lot of features out-of-the-box with no need to install and configure additional software. We want it to be simple to the point when even casual users can set it up with minimal effort. Note Some of the listed features can be added to Pi-Hole by installing additional software or by manually using SSH terminal and reconfiguring one of the utilities Pi-Hole consists of. However, in our opinion, this cannot be legitimately counted as a Pi-Hole's feature. Feature AdGuard Home Pi-Hole Blocking ads and trackers ✅ ✅ Customizing blocklists ✅ ✅ Built-in DHCP server ✅ ✅ HTTPS for the Admin interface ✅ Kind of, but you'll need to manually configure lighttpd Encrypted DNS upstream servers (DNS-over-HTTPS, DNS-over-TLS, DNSCrypt) ✅ ❌ (requires additional software) Cross-platform ✅ ❌ (not natively, only via Docker) Running as a DNS-over-HTTPS or DNS-over-TLS server ✅ ❌ (requires additional software) Blocking phishing and malware domains ✅ ❌ (requires non-default blocklists) Parental control (blocking adult domains) ✅ ❌ (requires non-default blocklists) Force Safe search on search engines ✅ ❌ Per-client (device) configuration ✅ ✅ Access settings (choose who can use AGH DNS) ✅ ❌ Running without root privileges ✅ ❌ How does AdGuard Home compare to traditional ad blockers It depends. DNS sinkholing is capable of blocking a big percentage of ads, but it lacks the flexibility and the power of traditional ad blockers. You can get a good impression about the difference between these methods by reading this article , which compares AdGuard for Android (a traditional ad blocker) to hosts-level ad blockers (which are almost identical to DNS-based blockers in their capabilities). This level of protection is enough for some users. Additionally, using a DNS-based blocker can help to block ads, tracking and analytics requests on other types of devices, such as SmartTVs, smart speakers or other kinds of IoT devices (on which you can't install traditional ad blockers). Known limitations Here are some examples of what cannot be blocked by a DNS-level blocker: YouTube, Twitch ads; Facebook, Twitter, Instagram sponsored posts. Essentially, any advertising that shares a domain with content cannot be blocked by a DNS-level blocker. Is there a chance to handle this in the future? DNS will never be enough to do this. Our only option is to use a content blocking proxy like what we do in the standalone AdGuard applications. We're going to bring this feature support to AdGuard Home in the future. Unfortunately, even in this case, there still will be cases when this won't be enough or would require quite a complicated configuration. How to build from source Prerequisites Run make init to prepare the development environment. You will need this to build AdGuard Home: Go v1.25 or later; Node.js v24.10.0 or later; npm v10.8 or later; Building Open your terminal and execute these commands: git clone https://github.com/AdguardTeam/AdGuardHome cd AdGuardHome make Warning The non-standard -j flag is currently not supported, so building with make -j 4 or setting your MAKEFLAGS to include, for example, -j 4 is likely to break the build. If you do have your MAKEFLAGS set to that, and you don't want to change it, you can override it by running make -j 1 . Check the Makefile to learn about other commands. Building for a different platform You can build AdGuard Home for any OS/ARCH that Go supports. In order to do this, specify GOOS and GOARCH environment variables as macros when running make . For example: env GOOS= ' linux ' GOARCH= ' arm64 ' make or: make GOOS= ' linux ' GOARCH= ' arm64 ' Preparing releases You'll need snapcraft to prepare a release build. Once installed, run the following command: make build-release CHANNEL= ' ... ' VERSION= ' ... ' See the build-release target documentation . Docker image Run make build-docker to build the Docker image locally (the one that we publish to DockerHub). Please note, that we're using Docker Buildx to build our official image. You may need to prepare before using these builds: (Linux-only) Install Qemu: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes Prepare the builder: docker buildx create --name buildx-builder --driver docker-container --use See the build-docker target documentation . Debugging the frontend When you need to debug the frontend without recompiling the production version every time, for example to check how your labels would look on a form, you can run the frontend build a development environment. In a separate terminal, run: ( cd ./client/ && env NODE_ENV= ' development ' npm run watch ) Run your AdGuardHome binary with the --local-frontend flag, which instructs AdGuard Home to ignore the built-in frontend files and use those from the ./build/ directory. Now any changes you make in the ./client/ directory should be recompiled and become available on the web UI. Make sure that you disable the browser cache to make sure that you actually get the recompiled version. End-to-End (E2E) Frontend Tests AdGuard Home uses Playwright for E2E testing. Tests are located in tests/e2e . Running Tests: npm run test:e2e – run all tests (headless). npm run test:e2e:interactive – run tests interactively. npm run test:e2e:debug – run tests in debug mode. npm run test:e2e:codegen – generate new test code. Setup: Run npm install to install dependencies. Run npx playwright install to set up required browsers. Warning: Playwright will download and install its own browser binaries for testing, which may differ from the browsers installed on your system. Contributing You are welcome to fork this repository, make your changes and submit a pull request . Please make sure you follow our code guidelines though. Please note that we don't expect people to contribute to both UI and backend parts of the program simultaneously. Ideally, the backend part is implemented first, i.e. configuration, API, and the functionality itself. The UI part can be implemented later in a different pull request by a different person. Test unstable versions There are two update channels that you can use: beta : beta versions of AdGuard Home. More or less stable versions, usually released every two weeks or more often. edge : the newest version of AdGuard Home from the development branch. New updates are pushed to this channel daily. There are three options how you can install an unstable version: Snap Store : look for the beta and edge channels. Docker Hub : look for the beta and edge tags. Standalone builds. Use the automated installation script or look for the available builds on the Wiki . Script to install a beta version: curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta Script to install an edge version: curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge Report issues If you run into any problem or have a suggestion, head to this page and click on the “New issue” button. Please follow the instructions in the issue form carefully and don't forget to start by searching for duplicates. Help with translations If you want to help with AdGuard Home translations, please learn more about translating AdGuard products in our Knowledge Base . You can contribute to the AdGuardHome project on CrowdIn . Other Another way you can contribute is by looking for issues marked as help wanted , asking if the issue is up for grabs, and sending a PR fixing the bug or implementing the feature. Projects that use AdGuard Home Please note that these projects are not affiliated with AdGuard, but are made by third-party developers and fans. AdGuard Home Remote : iOS app by Joost . Python library by @frenck . Home Assistant add-on by @frenck . OpenWrt LUCI app by @kongfl888 (originally by @rufengsuixing ). AdGuardHome sync by @bakito . Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home instance by @Lissy93 AdGuard Home on GLInet routers by Gl-Inet . Cloudron app by @gramakri . Asuswrt-Merlin-AdGuardHome-Installer by @jumpsmm7 aka @SomeWhereOverTheRainBow . Node.js library by @Andrea055 . Browser Extension by @satheshshiva . Zabbix Template for AdGuard Home by @diasdmhub . Chocolatey package by niks255 . Acknowledgments This software wouldn't have been possible without: Go and its libraries: gcache miekg's dns go-yaml service dnsproxy urlfilter Node.js and its libraries: React.js Tabler And many more Node.js packages. whotracks.me data You might have seen that CoreDNS was mentioned here before, but we've stopped using it in AdGuard Home. For the full list of all Node.js packages in use, please take a look at client/package.json file. Privacy Our main idea is that you are the one, who should be in control of your data. So it is only natural, that AdGuard Home does not collect any usage statistics, and does not use any web services unless you configure it to do so. See also the full privacy policy with every bit that could in theory be sent by AdGuard Home is available.
FreeWindowsmacOSLinux
server logo
server is a free, open-source alternative to Dropbox . Nextcloud Server ☁ A safe home for all your data. Why is this so awesome? 🤩 📁 Access your Data You can store your files, contacts, calendars, and more on a server of your choosing. 🔄 Sync your Data You keep your files, contacts, calendars, and more synchronized amongst your devices. 🙌 Share your Data …by giving others access to the stuff you want them to see or to collaborate with. 🚀 Expandable with hundreds of Apps ...like Calendar , Contacts , Mail , Video Chat and all those you can discover in our App Store 🔒 Security with our encryption mechanisms, HackerOne bounty program and two-factor authentication. Do you want to learn more about how you can use Nextcloud to access, share, and protect your files, calendars, contacts, communication & more at home and in your organization? Learn about all our Features . Get your Nextcloud 🚚 ☑️ Simply sign up at one of our providers either through our website or through the apps directly. 🖥 Install a server by yourself on your hardware or by using one of our ready-to-use appliances 📦 Buy one of the awesome devices coming with a preinstalled Nextcloud 🏢 Find a service provider who hosts Nextcloud for you or your company Enterprise? Public Sector or Education user? You may want to have a look into Nextcloud Enterprise provided by Nextcloud GmbH. Get in touch 💬 📋 Forum 🦋 Bluesky 👥 Facebook 🐘 Mastodon You can also get support for Nextcloud ! Join the team 👪 There are many ways to contribute, of which development is only one! Find out how to get involved , including as a translator, designer, tester, helping others, and much more! 😍 Development setup 👩‍💻 🚀 Set up your local development environment 🐛 Pick a good first issue 👩‍🔧 Create a branch and make your changes. Remember to sign off your commits using git commit -sm "Your commit message" ⬆ Create a pull request and @mention the people from the issue to review 👍 Fix things that come up during a review 🎉 Wait for it to get merged! Third-party components are handled as git submodules which have to be initialized first. So aside from the regular git checkout invoking git submodule update --init or a similar command is needed, for details see Git documentation. Several apps that are included by default in regular releases such as First run wizard or Activity are missing in master and have to be installed manually by cloning them into the apps subfolder. Otherwise, git checkouts can be handled the same as release archives, by using the stable* branches. Note they should never be used on production systems. Testing your code We use multiple test frameworks for specific areas of the code: PHPUnit for PHP unit tests Behat for PHP integration tests Vitest for Javascript / Typescript unit tests Playwright for end-to-end tests For our end-to-end tests using Playwright you can refer to our documentation on how to debug errors and to contribute new test cases. Tools we use 🛠 👀 BrowserStack for cross-browser testing 🌊 WAVE for accessibility testing 🚨 Lighthouse for testing performance, accessibility, and more Helpful bots at GitHub 🤖 Comment on a pull request with /update-3rdparty to update the 3rd party submodule. It will update to the last commit of the 3rd party branch named like the PR target. Ignore code style updates in git blame git config blame.ignoreRevsFile .git-blame-ignore-revs Contribution guidelines 📜 All contributions to this repository from June 16, 2016, and onward are considered to be licensed under the AGPLv3 or any later version. Nextcloud doesn't require a CLA (Contributor License Agreement). The copyright belongs to all the individual contributors. Therefore we recommend that every contributor adds the following line to the AUTHORS file if they made substantial changes to the code: - <your name> <your email address> Please read the Code of Conduct . This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere and to explain how together we can strengthen and support each other. Please review the guidelines for contributing to this repository. More information on how to contribute: https://nextcloud.com/contribute/
FreeWindowsmacOSLinuxAndroidiOS
maigret logo
maigret is a free, open-source alternative to Pipl . Maigret English · 简体中文 Maigret collects a dossier on a person by username only , checking for accounts on a huge number of sites and gathering all the available information from web pages. No API keys required. AI profiling (demo) . Sponsors IPcook provides reliable residential proxies for online research, username discovery, and public data collection workflows. High success rates • 99.99% uptime • Response time under 0.5s • Monthly & Pay-as-you-go • Non-expiring traffic • Up to 10 free sub-accounts for team collaboration • Residential proxies from $0.3–$3.2/GB. Special Offer : FREE 100MB trial available. Use code WELCOME20 for 20% off. RapidProxy provides high-performance residential proxies for Twitter scraping, Selenium automation, and web data extraction. 90M+ IPs • Smart rotation • Anti-block • Non-expiring traffic. Special Offer : Try it free — Plans from $0.65/GB. Use code RAPID10 for 10% off. Contents In one minute Main features Demo Installation Usage Contributing Commercial Use About In one minute Ensure you have Python 3.10 or higher. pip install maigret maigret YOUR_USERNAME No install? Try the community Telegram bot or a Cloud Shell . Want a web UI? See how to launch it . See also: Quick start . Main features Supports 3,000+ sites ( see full list ). A default run checks the 500 highest-ranked sites by traffic; pass -a to scan everything, or --tags to narrow by category/country. Embeddable in Python projects — import maigret and run searches programmatically (see library usage ). Extracts all available information about the account owner from profile pages and site APIs, including links to other accounts. Performs recursive search using discovered usernames and other IDs. Allows filtering by tags (site categories, countries). Detects and partially bypasses blocks, censorship, and CAPTCHA. Fetches an auto-updated site database from GitHub each run (once per 24 hours), and falls back to the built-in database if offline. Works with Tor and I2P websites; able to check domains. Ships with a web interface for browsing results as a graph and downloading reports in every format from a single page. Optional AI analysis mode ( --ai ) that turns raw findings into a short investigation summary using an OpenAI-compatible API. For the complete feature list, see the features documentation . Used by Professional OSINT and social-media analysis tools built on Maigret: Demo Video Reports PDF report , HTML report Full console output Installation Already ran the In one minute steps? You're set. Below are alternative methods. Don't want to install anything? Use the community Telegram bot . Windows Download maigret_standalone.exe from Releases . You can launch it two ways: Double-click it — Maigret will ask for a username, run a default search, and wait at the end so the report links stay visible. Run it from a terminal — open Command Prompt (press Win+R , type cmd , hit Enter) or PowerShell to pass extra options: cd %USERPROFILE% \Downloads maigret_standalone.exe USERNAME maigret_standalone.exe USERNAME --html :: also save an HTML report maigret_standalone.exe --help :: list all options Video guide: https://youtu.be/qIgwTZOmMmM . Cloud Shells Run Maigret in the browser via cloud shells or Jupyter notebooks: Local installation (pip) # install from pypi pip3 install maigret # usage maigret username From source # or clone and install manually git clone https://github.com/soxoj/maigret && cd maigret # build and install pip3 install . # usage maigret username Docker Two image variants are published: soxoj/maigret:latest — CLI mode (default) soxoj/maigret:web — auto-launches the web interface # official image (CLI) docker pull soxoj/maigret # CLI usage docker run -v /mydir:/app/reports soxoj/maigret:latest username --html # Web UI (open http://localhost:5000) docker run -p 5000:5000 soxoj/maigret:web # Web UI on a custom port docker run -e PORT=8080 -p 8080:8080 soxoj/maigret:web # manual build docker build -t maigret . # CLI image (default target) docker build --target web -t maigret-web . # Web UI image Troubleshooting Build errors? See the troubleshooting guide . PDF reports ( --pdf ) are an optional extra — install with pip install 'maigret[pdf]' . They need system-level graphics libraries on Linux/macOS; see the PDF reports section for per-OS install steps. Usage Examples # make HTML, PDF, and XMind reports maigret user --html maigret user --pdf maigret user --xmind # legacy XML with a manifest for XMind 2022+ readers # machine-readable exports maigret user --json ndjson # newline-delimited JSON (also: --json simple) maigret user --csv maigret user --txt maigret user --graph # interactive D3 graph (HTML) maigret user --neo4j # Neo4j Cypher script (graph database) # search on sites marked with tags photo & dating maigret user --tags photo,dating # search on sites marked with tag us maigret user --tags us # highlight sites whose page also mentions specific keywords maigret user --keywords python rust # keyword-matched sites are shown with "[++]" in bright green # search for three usernames on all available sites maigret user1 user2 user3 -a # AI-assisted investigation summary (needs OPENAI_API_KEY) maigret user --ai --neo4j writes a *_neo4j.cypher script of the results graph; import it with cypher-shell -u neo4j -p <password> < report_user_neo4j.cypher or paste it into the Neo4j Browser. Re-imports are idempotent. See the Neo4j export docs . Run maigret --help for all options. Docs: CLI options , more examples . Running into 403s or timeouts? See TROUBLESHOOTING.md . Web interface Maigret has a built-in web UI with a results graph and downloadable reports. Don't want to run it yourself? Deploy the published soxoj/maigret:web Docker image as a hosted app in one click: Runs on Render's free tier (spins down after 15 min idle, spins back up on the next request). No login is set up on the instance, so anyone with the URL can use it. Web Interface Screenshots maigret --web 5000 Open http://127.0.0.1:5000 , enter a username, and view results. Python library Maigret can be embedded in your own Python projects. The CLI is a thin wrapper around an async function you can call directly — build custom pipelines, feed results into your own tooling, or run it inside a larger OSINT workflow. See the full library usage guide for a working example, async patterns, and how to filter sites by tag. Useful CLI flags --parse URL — parse a profile page, extract IDs/usernames, and use them to kick off a recursive search. --permute — generate likely username variants from two or more inputs (e.g. john doe → johndoe , j.doe , …) and search for all of them. --self-check [--auto-disable] — verify usernameClaimed / usernameUnclaimed pairs against live sites for maintainers auditing the database. --ai / --ai-model — run the AI analysis over the search results and stream a short investigation summary to the terminal. AI analysis --ai collects the search results, builds an internal Markdown report, and sends it to an OpenAI-compatible chat completion endpoint to produce a short, neutral investigation summary (likely real name, location, occupation, interests, languages, confidence, follow-up leads). Per-site progress is suppressed and the model's output is streamed to stdout. export OPENAI_API_KEY=sk-... maigret user --ai # pick a different model maigret user --ai --ai-model gpt-4o-mini The key can also be set as openai_api_key in settings.json . The endpoint defaults to https://api.openai.com/v1 , but openai_api_base_url in settings.json can point to any OpenAI-compatible API (Azure OpenAI, OpenRouter, a local server, …). See the settings docs for the full list of options. Tor / I2P / proxies Maigret can route checks through a proxy, Tor, or I2P — useful for .onion / .i2p sites and for bypassing WAFs that block datacenter IPs. # any HTTP/SOCKS proxy maigret user --proxy socks5://127.0.0.1:1080 # Tor (default gateway socks5://127.0.0.1:9050) maigret user --tor-proxy socks5://127.0.0.1:9050 # I2P (default gateway http://127.0.0.1:4444) maigret user --i2p-proxy http://127.0.0.1:4444 Start your Tor / I2P daemon before running the command — Maigret does not manage these gateways. Cloudflare bypass Experimental. The Cloudflare webgate is under active development; the configuration schema, CLI behaviour, and the set of routed sites may change without backwards-compatibility guarantees. A subset of sites in the database require a real browser to solve a JavaScript challenge. Maigret can offload these checks to a local FlareSolverr instance: docker run -d -p 8191:8191 --name flaresolverr ghcr.io/flaresolverr/flaresolverr:latest maigret --cloudflare-bypass < username > The bypass is opt-in ( --cloudflare-bypass or cloudflare_bypass.enabled in settings.json ) and only fires for sites whose protection field matches. See the feature docs for backend options and configuration. Contributing Add or fix new sites surgically in data.json (no json.load / json.dump ), then run ./utils/update_site_data.py to regenerate sites.md and the database metadata, and open a pull request. For more details, see the CONTRIBUTING guide and development docs . Release history: CHANGELOG.md . Commercial Use The open-source Maigret is MIT-licensed and free for commercial use without restriction — but site checks break over time and need active maintenance. For serious commercial use — with a daily-updated site database or a username-check API — reach out: 📧 [email protected] Private site database — 5 000+ sites, updated daily (separate from the public open-source database) Username check API — integrate Maigret into your product About Disclaimer For educational and lawful purposes only. You are responsible for complying with all applicable laws (GDPR, CCPA, etc.) in your jurisdiction. The authors bear no responsibility for misuse. Feedback Open an issue · GitHub Discussions · Telegram SOWEL classification OSINT techniques used: SOTL-2.2. Search For Accounts On Other Platforms SOTL-6.1. Check Logins Reuse To Find Another Account SOTL-6.2. Check Nicknames Reuse To Find Another Account License MIT © Maigret
FreeWindowsmacOSLinux
CopilotKit logo
CopilotKit is a free, open-source alternative to CommandBar . CopilotKit Docs · Examples · Enterprise Intelligence Platform · Discord Build agent-native applications — on any framework, on any surface. Generative UI, shared state, and human-in-the-loop workflows for React, Angular, Vue, React Native — and in Slack and Microsoft Teams. What is CopilotKit CopilotKit is a best-in-class SDK for building full-stack agentic applications, Generative UI, and chat applications. What started as a React library is now the horizontal layer between your agents and your users : the same agent can power your web app, your mobile app, and your team's Slack or Microsoft Teams workspace. We are the company behind the AG-UI Protocol - adopted by Google, LangChain, AWS, Microsoft, Mastra, PydanticAI, and more! Quick Start Up and running in under five minutes. All you need is an LLM key (OpenAI, Anthropic, Gemini, etc.). npx copilotkit@latest create Agent Skills CopilotKit ships agent skills that teach your coding agent (Claude Code, Codex, Cursor, Gemini, and others) how to set up, build with, integrate, debug, and upgrade CopilotKit. Install them into any project directory: npx copilotkit@latest skills install Run it again any time to refresh to the latest skills. Bring Your App to Life Whole.Generative.UI.v5.mp4 Add AI to your app in 1 minute Features: Chat UI – A fully customizable chat interface that supports message streaming, tool calls, and agent responses. Backend Tool Rendering – Enables agents to call backend tools that return UI components rendered directly in the client. Generative UI – Allows agents to generate and update UI components dynamically at runtime based on user intent and agent state. Shared State – A synchronized state layer that both agents and UI components can read from and write to in real time. Human-in-the-Loop – Lets agents pause execution to request user input, confirmation, or edits before continuing. Self-Learning (early access) – Agents that continuously improve from user feedback via in-context reinforcement learning (CLHF). 🧩 Works With Your Stack One agent backend. Every frontend. Platform Status Get Started ⚛️ React / Next.js ✅ GA Quickstart 🅰️ Angular ✅ Supported Source Code & Quickstart 💚 Vue ✅ Supported Source Code - Quickstart coming soon 📱 React Native ✅ Supported Quickstart 💬 Slack / Microsoft Teams ✅ Supported Channels · Quickstart 🔜 Discord / WhatsApp / Telegram / Google Chat / iMessage / SMS 🟡 Coming soon Channels Your agent logic stays the same — AG-UI handles the wire protocol, CopilotKit handles the UI layer for each framework and channel. 💬 Channels: One Agent, Every Chat App The Channels SDK takes the agent you already built and drops it into the chat apps your users live in — same tools, same shared state, same human-in-the-loop, no rewrite ( Learn more ). Slack – Agents as first-class Slack apps: threads, tool calls, and human-in-the-loop approvals right in the channel. Microsoft Teams – Bring agentic workflows to the enterprise, where your org already lives. 👉 Explore Channels → 🧠 Self-Learning Agents Improve your product by learning over time. With Continuous Learning from Human Feedback (CLHF) , part of the CopilotKit Intelligence Platform , agents improve with every interaction: In-context reinforcement learning – Agents automatically improve from user interactions, no model fine-tuning required. Automatic prompt augmentation – Agent behavior adapts based on recent interactions and outcomes. Per-user adaptation – Agents learn individual preferences and get better for each user over time. Threads & persistence – Full interaction history — generative UI, human-in-the-loop, shared state — captured across sessions. Available via CopilotKit Cloud or self-hosted. 🔒 Early access: We're onboarding teams now. 👉 Request early access → cpk-cli.mp4 What this gives you: CopilotKit installed – Core packages are fully set up in your app Provider configured – Context, state, and hooks ready to use Agent <> UI connected – Agents can stream actions and render UI immediately Deployment-ready – Your app is ready to deploy Complete getting started guide → How it works: CopilotKit connects your UI, agents, and tools into a single interaction loop. This enables: Agents that ask users for input Tools that render UI Stateful workflows across steps and sessions One agent, deployed across web, mobile, and chat platforms ⭐️ useAgent Hook The useAgent hook sits directly on AG-UI, giving you full programmatic control over the agent connection. // Programmatically access and control your agents const { agent } = useAgent ( { agentId : "my_agent" } ) ; // Render and update your agent's state return < div > < h1 > { agent . state . city } < / h1 > < button onClick = { ( ) => agent . setState ( { city : "NYC" } ) } > Set City < / b u t t o n > < / div > Check out the useAgent docs to learn more. CopilotKit.UseAgent.Graphic.Motion_2.mp4 Generative UI Generative UI is a core CopilotKit pattern that allows agents to dynamically render UI as part of their workflow. demo-generative-ui.mp4 Compare the Three Types Explore: Static (AG-UI Protocol) Declarative (A2UI) Open-Ended (MCP Apps & Open JSON) Generative UI educational repo → 🖥️ AG-UI: The Agent–User Interaction Protocol Connect agent workflows to user-facing apps, with deep partnerships and 1st-party integrations across the agentic stack—including LangChain, CrewAI, Mastra, PydanticAI, and more. npx create-ag-ui-app my-agent-app Learn more in the AG-UI README → 🤝 Community What's New Have questions or need help? Join our Discord → Read the Docs → Try the Enterprise Intelligence Platform → Stay up to date with our latest releases! Follow us on LinkedIn → Follow us on X → 🙋🏽‍♂️ Contributing Thanks for your interest in contributing to CopilotKit! 💜 We value all contributions, whether it's through code, documentation, creating demo apps, or just spreading the word. Here are a few useful resources to help you get started: For code contributions, CONTRIBUTING.md . For documentation-related contributions, check out the documentation contributions guide . Want to contribute but not sure how? Join our Discord and we'll help you out! 📄 License This repository's source code is available under the MIT License .
FreeAndroidiOS
spacedrive logo
spacedrive is a free, open-source alternative to ExpanDrive . Spacedrive One file manager for all your devices and clouds. Powered by a Virtual Distributed File System, complete with apps for macOS, Windows, Linux, iOS and Android v2.spacedrive.com • Discord • Getting Started What is Spacedrive? Spacedrive is a cross-device data platform. Index files, emails, notes, and external sources. Search everything. Sync via P2P. Keep AI agents safe with built-in screening. Content identity — every file gets a BLAKE3 content hash. Same file on two devices produces the same hash. Spacedrive tracks redundancy and deduplication across all your machines. Cross-device — see all your files across all your devices in one place. Files on disconnected devices stay in the index and appear as offline. P2P sync — devices connect directly via Iroh/QUIC. No servers, no cloud, no single point of failure. Metadata syncs between devices. Files stay where they are. Cloud volumes — index S3, Google Drive, Dropbox, OneDrive, Azure, and GCS as first-class volumes alongside local storage. Nine views — grid, list, columns, media, size, recents, search, knowledge, and splat. QuickPreview for video, audio, code, documents, 3D, and images. Local-first — everything runs on your machine. No data leaves your device unless you choose to sync between your own devices. Is this a replacement for Finder or Explorer? No. Spacedrive sits above your OS file manager and adds capabilities Finder/Explorer lack: Portal across everything — search and browse files across local disks, external drives, NAS, cloud storage, and archived data sources from one interface. Operating surface for files — content identity, sidecars, derivative artifacts, rich metadata, sync, and cross-device awareness built into the core model. Embeddable and shareable — run it as a desktop app, headless server, hosted file service, or embed the interface and APIs into other products. AI-ready by design — indexing and analysis pipelines prepare data ahead of time instead of giving agents raw shell access. Safer access model — route AI and automation through structured APIs, permissions, and processing layers instead of direct file operations. You still use your OS for low-level file interactions. Spacedrive adds the cross-platform, cross-device, cloud-aware, and automation-friendly layer on top. Data Archival Spacedrive indexes external data sources via script-based adapters: Gmail, Apple Notes, Chrome bookmarks, Obsidian, Slack, GitHub, calendar events, contacts. Each source becomes a searchable repository alongside your files. Adapters are a folder with an adapter.toml manifest and a sync script in any language. If it reads stdin and prints lines, it works. Shipped adapters: Gmail, Apple Notes, Chrome Bookmarks, Chrome History, Safari History, Obsidian, OpenCode, Slack, macOS Contacts, macOS Calendar, GitHub. Spacebot Spacedrive integrates with Spacebot , an open source AI agent runtime. Spacebot runs as an optional separate process. Spacedrive provides the data, permission, and execution layer. Spacebot provides the intelligence. Each Spacebot instance pairs with one Spacedrive node as its home device. That node authenticates the agent, maintains the device graph, resolves permissions, and forwards operations to peer devices. Every device in your library can reach Spacebot through the paired node over P2P (Iroh/QUIC) without direct network access. One agent runtime serves your entire device fleet. When Spacebot spawns a worker, that worker can target any device in the library. File reads, shell commands, and operations proxy through Spacedrive to the target device. Talk to the agent from your phone while work executes on a server. Read files from a NAS, run commands on a workstation, report to a laptop — all in one task. Every operation passes through Spacedrive's permission system: which devices the agent can access, which paths are readable or writable, which operations are allowed, and which require human confirmation. The paired node resolves effective policy before forwarding. One security model, one audit surface across all devices and clouds. File System Intelligence Spacedrive adds intelligence to your filesystem by combining three layers: File intelligence — derivative data like OCR, transcripts, extracted metadata, thumbnails, previews, classifications, and sidecars. Directory intelligence — contextual knowledge attached to folders and subtrees ("active projects", "dormant archives", etc). Access intelligence — permissions and policy that apply across devices and clouds, routing agents through structured access instead of raw shell commands. When an agent navigates through Spacedrive, it receives the file listing, subtree context, effective permissions, and summaries. Users can explain how they organize their system. Agents can add attributed notes. Jobs generate summaries from structure and activity. The intelligence stays attached to the filesystem, not buried in temporary session memory. Safety Screening When enabled, every record passes through a safety pipeline before becoming searchable: Prompt Guard 2 — local classifier detects prompt injection in emails, messages, and documents before they enter the index. Trust tiers — authored content (your notes) gets balanced screening, external content (email inbox) gets strict screening. Quarantine system — flagged records excluded from AI agent queries, reviewable in desktop app. Content fencing — search results include trust metadata so agents know what's safe vs untrusted. No other local data tool screens indexed content before exposing it to AI. Architecture The core is built on four principles: Virtual Distributed Filesystem (VDFS) — files and folders become first-class objects with rich metadata, independent of physical location. Every file gets a universal address ( SdPath ) that works across devices. Content Identity System — adaptive hashing (BLAKE3 with strategic sampling for large files) creates a unique fingerprint for every piece of content. Enables deduplication, redundancy tracking, and content-based operations. Transactional Actions — every file operation can be previewed before execution. See space savings, conflicts, and estimated time, then approve or cancel. Operations become durable jobs that survive network interruptions and device restarts. Leaderless Sync — peer-to-peer synchronization without central coordinators. Device-specific data uses state replication. Shared metadata uses an HLC-ordered log with deterministic conflict resolution. The implementation is a single Rust crate with CQRS/DDD architecture. Every operation (file copy, tag create, search query) is a registered action or query with type-safe input/output that auto-generates TypeScript types for the frontend. Component Technology Language Rust Async runtime Tokio Database SQLite (SeaORM + sqlx) P2P Iroh (QUIC, hole-punching, local discovery) Content hashing BLAKE3 Vector search LanceDB + FastEmbed Cloud storage OpenDAL Cryptography Ed25519, X25519, ChaCha20-Poly1305, AES-GCM Media FFmpeg, libheif, Pdfium, Whisper Desktop Tauri 2 Mobile React Native + Expo Frontend React 19, Vite, TanStack Query, Tailwind CSS v4 Design system SpaceUI (shared component library) Type generation Specta spacedrive/ ├── core/ # Rust engine (CQRS/DDD) ├── apps/ │ ├── tauri/ # Desktop app (macOS, Windows, Linux) │ ├── mobile/ # React Native (iOS, Android) │ ├── cli/ # CLI and daemon │ ├── server/ # Headless server │ └── web/ # Browser client ├── packages/ │ ├── interface/ # Shared React UI │ ├── ts-client/ # Auto-generated TypeScript client │ ├── ui/ # Component library │ └── assets/ # Icons, images, SVGs ├── crates/ # Standalone Rust crates (ffmpeg, crypto, etc.) ├── adapters/ # Script-based data source adapters └── schemas/ # TOML data type schemas Getting Started Requires Rust 1.81+, Bun 1.3+, just , and Python 3.9+ (for adapters). git clone https://github.com/spacedriveapp/spacedrive cd spacedrive just setup # bun install + native deps + cargo config just dev-desktop # launch the desktop app (auto-starts daemon) just test # run all workspace tests Privacy & Security Spacedrive is local-first. Your data stays on your devices. End-to-End Encryption — all P2P traffic encrypted via QUIC/TLS At-Rest Encryption — libraries can be encrypted on disk (SQLCipher) No Telemetry — zero tracking or analytics Self-Hostable — run your own relay servers Data Sovereignty — you control where your data lives Optional cloud integration is available for backup and remote access, but it's never required. The cloud service runs unmodified Spacedrive core as a standard P2P device—no special privileges. Contributing Join Discord to chat with developers and community Contributing Guide Adapter Guide — write a data source adapter SpaceUI — shared design system (clone alongside Spacedrive to work on UI) License FSL-1.1-ALv2 — Functional Source License , converting to Apache 2.0 after two years.
FreeWindowsmacOSLinuxAndroidiOS
langgraph logo
langgraph is a free, open-source software / service you can self-host or use without paying. Low-level orchestration framework for building stateful agents. Trusted by companies shaping the future of agents – including Klarna, Replit, Elastic, and more – LangGraph is a low-level orchestration framework for building, managing, and deploying long-running, stateful agents. pip install -U langgraph Tip If you're looking to quickly build agents, check out Deep Agents — a higher-level package built on LangGraph for agents that can plan, use subagents, and leverage file systems for complex tasks. For an equivalent JS/TS library, check out LangGraph.js and the JS docs . Why use LangGraph? LangGraph provides low-level supporting infrastructure for any long-running, stateful workflow or agent: Durable execution — Build agents that persist through failures and can run for extended periods, automatically resuming from exactly where they left off. Human-in-the-loop — Seamlessly incorporate human oversight by inspecting and modifying agent state at any point during execution. Comprehensive memory — Create truly stateful agents with both short-term working memory for ongoing reasoning and long-term persistent memory across sessions. Debugging with LangSmith — Gain deep visibility into complex agent behavior with visualization tools that trace execution paths, capture state transitions, and provide detailed runtime metrics. Production-ready deployment — Deploy sophisticated agent systems confidently with scalable infrastructure designed to handle the unique challenges of stateful, long-running workflows. Tip For developing, debugging, and deploying AI agents and LLM applications, see LangSmith . LangGraph ecosystem While LangGraph can be used standalone, it also integrates seamlessly with any LangChain product, giving developers a full suite of tools for building agents. To improve your LLM application development, pair LangGraph with: Deep Agents – Build agents that can plan, use subagents, and leverage file systems for complex tasks. LangChain – Provides integrations and composable components to streamline LLM application development. LangSmith – Helpful for agent evals and observability. Debug poor-performing LLM app runs, evaluate agent trajectories, gain visibility in production, and improve performance over time. LangSmith Deployment – Deploy and scale agents effortlessly with a purpose-built deployment platform for long-running, stateful workflows. Discover, reuse, configure, and share agents across teams – and iterate quickly with visual prototyping in LangSmith Studio . Documentation docs.langchain.com – Comprehensive documentation, including conceptual overviews and guides reference.langchain.com/python/langgraph – API reference docs for LangGraph packages LangGraph Quickstart – Get started building with LangGraph Chat LangChain – Chat with the LangChain documentation and get answers to your questions Discussions : Visit the LangChain Forum to connect with the community and share all of your technical questions, ideas, and feedback. Additional resources Guides – Quick, actionable code snippets for topics such as streaming, adding memory & persistence, and design patterns (e.g. branching, subgraphs, etc.). LangChain Academy – Learn the basics of LangGraph in our free, structured course. Case studies – Hear how industry leaders use LangGraph to ship AI applications at scale. Contributing Guide – Learn how to contribute to LangChain projects and find good first issues. Code of Conduct – Our community guidelines and standards for participation. Acknowledgements LangGraph is inspired by Pregel and Apache Beam . The public interface draws inspiration from NetworkX . LangGraph is built by LangChain Inc, the creators of LangChain, but can be used without LangChain.
FreeWindowsmacOSLinux
openscreen logo
openscreen is a free, open-source alternative to Screen Studio . Note OpenScreen is now archived and no longer maintained. For continued maintenance and development, a community-driven spin-off led by one of the core contributors is available here: https://github.com/EtienneLescot/openscreen Warning This started as a side project that blew up; not production grade and you'll hit bugs, but hopefully it covers what you need. This project will soon be archived. OpenScreen OpenScreen is your free, open-source alternative to Screen Studio. If you don't want to pay $29/month for Screen Studio but want a version that does what most people seem to need - quick, polished product demos and walkthroughs you'd post on X, Reddit or Youtube. OpenScreen does not offer every Screen Studio feature, but covers a lot of the core functionality. Screen Studio is an awesome product and this is definitely not a 1:1 clone. If you just want something fully free and open source, this project should cover most of your needs. 100% free for both personal and commercial use. Use it, modify it, distribute it. Please respect the License. Note Software should be accessible. OpenScreen has no paid tiers, premium features, upsells, or functionality locked behind a paywall. Core Features Record a specific window, or your whole screen. Record microphone and system audio. Webcam overlay with picture-in-picture, drag-to-position, mirroring, and shape options. Auto or manual zooms with adjustable depth, duration, easing, and pixel-precise position; auto-zoom follows your cursor as you work. Custom cursor size, smoothing, and click effects, with cursor themes and post-recording path smoothing. Automatic captions for voiceovers, generated on-device with no upload (works offline). Wallpapers, solid colors, gradients, or your own background image. Motion blur. Crop, trim, and per-segment speed control on the timeline. Text, arrow, and image annotations, with text animation presets. Timeline snapping guides and an audio waveform to make trimming easier. Customizable keyboard shortcuts. Export to MP4 or GIF in multiple aspect ratios and resolutions. Languages supported: Arabic, English, Spanish, French, Italian, Japanese, Korean, Portuguese (Brazil), Russian, Turkish, Vietnamese, Simplified Chinese, and Traditional Chinese. Installation Download the latest installer for your platform from the GitHub Releases page. macOS The easiest way to install on macOS is via Homebrew : brew install --cask siddharthvaddem/openscreen/openscreen Brew automatically picks the right build for Apple Silicon or Intel, and verifies the download against a notarized signature so Gatekeeper won't block it. To update later: brew upgrade --cask openscreen To uninstall: brew uninstall --cask openscreen (add --zap to also remove app data) Manual install (if you prefer) If you'd rather grab the .dmg directly from the Releases page and encounter Gatekeeper blocking the app, you can bypass it by running the following command in your terminal after installation: xattr -rd com.apple.quarantine /Applications/Openscreen.app Note: Give your terminal Full Disk Access in System Settings > Privacy & Security to grant you access and then run the above command. After running this command, proceed to System Preferences > Security & Privacy to grant the necessary permissions for "screen recording" and "accessibility". Once permissions are granted, you can launch the app. Note Upgrading from an older version and hitting permission issues? If you already had OpenScreen installed and the new version won't record (Screen Recording or Accessibility keep failing even after you grant them), uninstall the old version, remove OpenScreen's existing entries under System Settings > Privacy & Security (both Screen Recording and Accessibility), then do a fresh install and grant the permissions again when prompted. Windows Install via winget : winget install SiddharthVaddem.OpenScreen To update later: winget upgrade SiddharthVaddem.OpenScreen To uninstall: winget uninstall SiddharthVaddem.OpenScreen If you'd rather grab the .exe installer directly, download it from the Releases page . Linux Three packages are published to the Releases page for each version. Pick the one that matches your distro: Debian / Ubuntu / Pop!_OS ( .deb ) sudo apt install ./Openscreen-Linux-latest.deb Arch / Manjaro ( .pacman ) sudo pacman -U Openscreen-Linux-latest.pacman Any distro ( .AppImage ) chmod +x Openscreen-Linux- * .AppImage ./Openscreen-Linux- * .AppImage NixOS / Nix (flake) Try without installing: nix run github:siddharthvaddem/openscreen Install into your user profile: nix profile install github:siddharthvaddem/openscreen For a NixOS system config (flake): { inputs . openscreen . url = "github:siddharthvaddem/openscreen" ; outputs = { nixpkgs , openscreen , ... } : { nixosConfigurations . < host > = nixpkgs . lib . nixosSystem { modules = [ openscreen . nixosModules . default { programs . openscreen . enable = true ; } ] ; } ; } ; } For Home Manager, use openscreen.homeManagerModules.default with the same programs.openscreen.enable = true; . You may need to grant screen recording permissions depending on your desktop environment. Sandbox error: If the AppImage fails to launch with a "sandbox" error, run it with --no-sandbox : ./Openscreen-Linux- * .AppImage --no-sandbox Platform differences Everything in the editor and export is the same on macOS, Windows, and Linux: zooms, backgrounds, motion blur, crop/trim/speed, blur regions, annotations, auto-captions, projects, export, and all languages. The differences are in capture , where macOS and Windows use a native pipeline that Linux doesn't have: Native recording : macOS (ScreenCaptureKit) and Windows (Windows Graphics Capture) record through a native pipeline for higher quality and clean window-level capture. Linux records through the browser pipeline instead. Custom cursors : on macOS and Windows the real cursor is captured (shape, type, and clicks), which powers the cursor themes, click effects, and editable cursor overlay. On Linux only the cursor position is captured (used for auto-zoom), so those cursor options aren't available. Webcam : captured natively on macOS and Windows; on Linux it's recorded through the browser, but still works as a picture-in-picture overlay. System audio support varies by OS: macOS : requires macOS 13+. On macOS 14.2+ you'll be prompted to grant audio capture permission. macOS 12 and below can't capture system audio (mic still works). Windows : works out of the box. Linux : needs PipeWire (default on Ubuntu 22.04+, Fedora 34+). Older PulseAudio-only setups may not capture system audio (mic should still work). License This project is licensed under the MIT License . By using this software, you agree that the authors are not liable for any issues, damages, or claims arising from its use.
FreeWindowsmacOSLinux
puter logo
puter is a free, open-source alternative to Dropbox . The Open-Source Internet Computer! « LIVE DEMO » Puter.com · App Store · Developers · Discord · Reddit · X Puter Puter is an advanced, open-source, self-hostable internet computer designed to be feature-rich, fast, and highly extensible. For Users Puter's goal is to provide you with every app and feature you need to work, create, and play under one roof. From a simple Notepad and Voice Recorder to Spreadsheet and Camera , Puter wants to be the all-in-one solution for your digital life. For Developers Puter provides everything you need to build and publish web apps and games. From AI to Cloud Storage and Database to Serverless Workers , Puter has you covered. Puter also helps you get users! Once you build your app, you can publish it on our App Store to reach and monetize users. Getting Started 💻 Local Development git clone https://github.com/HeyPuter/puter cd puter npm install npm start → This should launch Puter at http://puter.localhost:4100 🚀 Self-Hosting Linux/macOS curl -fsSL https://puter.com/selfhost | sh Windows irm https: // puter.com / selfhost?os = windows | iex → For more details, see Self-Hosting Puter . ☁️ Puter.com Puter is available as a hosted service at puter.com . Support Connect with the maintainers and community through these channels: Bug report or feature request? Please open an issue . Discord: discord.com/invite/PQcx7Teh8u X (Twitter): x.com/HeyPuter Reddit: reddit.com/r/puter/ Mastodon: mastodon.social/@puter Security issues or abuse reports? [email protected] Email maintainers at [email protected] We are always happy to help you with any questions you may have. Don't hesitate to ask! License This repository, including all its contents, sub-projects, modules, and components, is licensed under AGPL-3.0 unless explicitly stated otherwise. Third-party libraries included in this repository may be subject to their own licenses. Translations Arabic / العربية Armenian / Հայերեն Bengali / বাংলা Chinese / 中文 Danish / Dansk English Farsi / فارسی Finnish / Suomi French / Français German / Deutsch Hebrew/ עברית Hindi / हिंदी Hungarian / Magyar Indonesian / Bahasa Indonesia Italian / Italiano Japanese / 日本語 Korean / 한국어 Malay / Bahasa Malaysia Malayalam / മലയാളം Polish / Polski Portuguese / Português Punjabi / ਪੰਜਾਬੀ Romanian / Română Russian / Русский Spanish / Español Swedish / Svenska Tamil / தமிழ் Telugu / తెలుగు Thai / ไทย Turkish / Türkçe Ukrainian / Українська Urdu / اردو Vietnamese / Tiếng Việt
FreeWindowsmacOSLinux
hyperswitch logo
hyperswitch is a free, open-source alternative to Stripe . Composable Open-Source Payments Infrastructure 📁 Table of Contents What Can I Do with Hyperswitch? Quickstart (Local Setup) Cloud Deployment Hosted Sandbox (No Setup Required) Why Hyperswitch? Architectural Overview Our Vision Community & Contributions Feature Requests & Bugs Versioning License Team Behind Hyperswitch What Can I Do with Hyperswitch? Hyperswitch offers a modular, open-source payments infrastructure designed for flexibility and control. Apart from our Payment Suite offering, this solution allows businesses to pick and integrate only the modules they need on top of their existing payment stack — without unnecessary complexity or vendor lock-in. Each module is independent and purpose-built to optimize different aspects of payment processing. Learn More About The Payment Modules Details Cost Observability Advanced observability tools to audit, monitor, and optimize your payment costs. Detect hidden fees, downgrades, and penalties with self-serve dashboards and actionable insights. Read more Revenue Recovery Combat passive churn with intelligent retry strategies tuned by card bin, region, method, and more. Offers fine-grained control over retry algorithms, penalty budgets, and recovery transparency. Read more Vault A PCI-compliant vault service to store cards, tokens, wallets, and bank credentials. Provides a unified, secure, and reusable store of customer-linked payment methods. Also supports bring-your-own-vault to connect existing providers including VGS and TokenEx without re-tokenizing or migrating stored cards. Read more Intelligent Routing Route each transaction across Stripe, Adyen, Braintree, Worldpay, Checkout.com, and 120+ others to the PSP with the highest predicted auth rate. Reduce retries, avoid downtime, and minimize latency while maximizing first attempt success. Read more Reconciliation Automate 2-way and 3-way reconciliation with backdated support, staggered scheduling, and customizable outputs. Reduces manual ops effort and increases audit confidence. Read more Alternate Payment Methods Drop-in widgets for PayPal, Apple Pay, Google Pay, Samsung Pay, Pay by Bank, and BNPL providers like Klarna. Maximizes conversions with seamless one-click checkout. Read more Quickstart Local Setup via Docker # One-click local setup git clone --depth 1 --branch latest https://github.com/juspay/hyperswitch cd hyperswitch scripts/setup.sh This script: Detects Docker/Podman Offers multiple deployment profiles: Standard : App server + Control Center Full : Includes monitoring + schedulers Minimal : Standalone App server Provides access links when done If you need further help, check out our video tutorial . 👉 After setup, configure a connector and test a payment . Hosted Sandbox (No Setup Required) Hyperswitch offers a fully hosted sandbox environment that requires no setup. You can explore the Control Center, configure payment connectors, and test payments directly from the UI. What you can do in the Hosted Sandbox Access the full Control Center Configure payment connectors View logs, routing rules, and retry strategies Try payments directly from the UI Cloud Deployment You can deploy to AWS, GCP, or Azure using Helm Charts. Cloud Deployment Instructions . Architectural Overview Why Hyperswitch? Hyperswitch is a commercial open-source payments stack purpose-built for scale, flexibility, and developer experience. Designed with a modular architecture, Hyperswitch lets you pick only the components you need—whether it’s routing, retries, vaulting, or observability—without vendor lock-in or bloated integrations. Built in Rust for performance and reliability, Hyperswitch connects to Stripe, Adyen, Braintree, Worldpay, Checkout.com, Cybersource, and 120+ processors — exposing smart routing and retry logic, and provides a visual workflow builder in the Control Center. Whether you're integrating a full payment suite or augmenting an existing stack with a single module, Hyperswitch meets you where you are. Common starting points: teams moving from a single Stripe/ Stripe connect or Braintree integration to multi-PSP routing, merchants replacing a payment gateway with direct acquirer connections to TSYS, JP Morgan Payments, or other acquirers, and merchants rearchitecting their payments platform through Hyperswitch while keeping their existing VGS, TokenEx or other existing vault intact. “Linux for Payments” — Hyperswitch is a well-architected reference for teams who want to own their payments stack. We believe in: Embracing Payment Diversity: Innovation comes from enabling choice—across payment methods, processors, and flows. Open Source by Default: Transparency drives trust and builds better, reusable software. Community-Driven Development: Our roadmap is shaped by real-world use cases and contributors. Systems-Level Engineering: We hold ourselves to a high bar for reliability, security, and performance. Maximizing Value Creation: For developers, customers, and partners alike. Community-Driven, Enterprise-Tested: Hyperswitch is built in the open with real-world feedback from developers and contributors, and maintained by Juspay, the team powering payment infrastructure for 400+ leading enterprises worldwide. Supported Connectors Hyperswitch integrates with 100+ payment processors out of the box. Each connector has a dedicated guide covering credentials setup, webhook configuration, supported payment methods, and common failure modes. Processor Type Guide Global Payments Payment Gateway View → Stripe Payment Gateway View → Paypal Payment Gateway View → Adyen Payment Gateway View → Bank of America Payment Gateway View → 👉 Browse all available connectors → Hyperswitch Ecosystem Mapping Hyperswitch is built as a set of modular services and SDKs that work together. The Rust app server in this repo is the core, and the repositories below extend it with dashboards, client SDKs, and deployment tooling. 1. Core backend services The Rust services that process payments. The app server is the center of gravity; the vault and encryption service handle sensitive-data operations alongside it. hyperswitch-prism is a separate, lighter entry point: a unified connector library that can be used directly against payment processors without running the full switch. decision-engine is another standalone service: a routing control plane that selects the best gateway per transaction and can run independently of any orchestrator. hyperswitch card-vault encryption-service prism decision-engine Language Rust Rust Rust Rust Rust Role App server. Routing, retries, vaulting, observability. PCI-compliant card storage. Encryption, decryption, KMS. Unified connector library, 100+ processors. Routing control plane. Rule-based and success-rate gateway selection. Standalone, works with any orchestrator. Depends on card-vault, encryption-service encryption-service None None None 2. Dashboard Merchant-facing UIs for configuring connectors, routing, and viewing transactions. Both require the hyperswitch backend to be running. control-center control-center-embedded Language ReScript TypeScript Role Full merchant dashboard. Connectors, routing rules, analytics, API keys. Embeddable Hyperswitch components for partners and merchants surfacing Hyperswitch UI inside their own apps. Depends on hyperswitch backend hyperswitch backend 3. Web checkout SDKs How a browser talks to Hyperswitch. hyperswitch-client-core is the shared core, pulled in as a git submodule by every client SDK (web and mobile). hyperswitch-sdk-utils holds shared assets that merchants doing Headless Implementations consume directly. hyperswitch-web client-core react-hyper-js sdk-utils Language ReScript ReScript ReScript ReScript Distribution npm git submodule npm git submodule Role Primary web SDK. ReScript-built React library for unified checkout. Shared SDK core consumed transitively by every client SDK. Idiomatic React wrapper around the Hyper JS loader. Shared utilities and assets used across client-core and hyperswitch-web. Depends on hyperswitch backend None hyperswitch-web None 4. Mobile SDKs Native SDKs for embedding Hyperswitch checkout into mobile apps. All are built on top of hyperswitch-client-core , pulled in as a git submodule. Android iOS React Native Flutter Repository hyperswitch-sdk-android hyperswitch-sdk-ios react-native-hyperswitch flutter_hyperswitch Language Kotlin Swift TypeScript Dart Distribution Maven CocoaPods (SPM in progress) npm pub.dev Status Officially supported Officially supported Officially supported Officially supported Important An older repo, hyperswitch-sdk-react-native , is being deprecated and has already been removed from npm. Use react-native-hyperswitch instead. 5. Deployment & infrastructure Tooling for running Hyperswitch, from local development through production. hyperswitch-suite hyperswitch-helm Tooling Terraform (HCL) Helm charts Role Umbrella full-suite deployment that wires the core, vault, control-center, and web together. Recommended starting point for the full stack. Kubernetes deployments for GCP, Azure, or any K8s-compatible platform. Contributing We welcome contributors from around the world to help build Hyperswitch. Whether you're fixing bugs, improving documentation, or adding new features, your help is appreciated. Please read our contributing guidelines to get started. Join the conversation on Slack or explore open issues on GitHub . Feature requests & Bugs For new product features, enhancements, roadmap discussions, or to share queries and ideas, visit our GitHub Discussions For reporting a bug, please read the issue guidelines and search for existing and closed issues . If your problem or idea is not addressed yet, please open a new issue . Versioning Check the CHANGELOG.md file for details. Copyright and License This product is licensed under the Apache 2.0 License .
FreeWindowsmacOSLinuxAndroidiOS
payload logo
payload is a free, open-source alternative to Contentful . Explore the Docs · Community Help · Roadmap · View G2 Reviews Important Star this repo or keep an eye on it to follow along. Payload is the first-ever Next.js native CMS that can install directly in your existing /app folder. It's the start of a new era for headless CMS. Benefits over a regular CMS It's both an app framework & headless CMS Deploy anywhere, including serverless on Vercel for free Combine your front+backend in the same /app folder if you want Don't sign up for yet another SaaS - Payload is open source Query your database in React Server Components Both admin and backend are 100% extensible No vendor lock-in Never touch ancient WP code again Build faster, never hit a roadblock Quickstart Before beginning to work with Payload, make sure you have all of the required software . pnpx create-payload-app@latest If you're new to Payload, you should start with the website template ( pnpx create-payload-app@latest -t website ). It shows how to do everything - including custom Rich Text blocks, on-demand revalidation, live preview, and more. It comes with a frontend built with Tailwind all in one /app folder. One-click deployment options You can deploy Payload serverlessly in one-click via Vercel and Cloudflare—giving everything you need without the hassle of the plumbing. Deploy on Cloudflare Fully self-contained — one click to deploy Payload with Workers , R2 for uploads, and D1 for a globally replicated database. Deploy on Vercel All-in-one on Vercel — one click to deploy Payload with a Next.js front end, Neon database, and Vercel Blob for media storage. One-click templates Jumpstart your next project with a ready-to-go template. These are production-ready, end-to-end solutions designed to get you to market fast. Build any kind of website , ecommerce store , blog , or portfolio — complete with a modern front end built using React Server Components and Tailwind . 🌐 Website 🛍️ Ecommerce 🎉 NEW 🎉 We're constantly adding more templates to our Templates Directory . If you maintain your own, add the payload-template topic to your GitHub repo so others can discover it. 🔗 Explore more: Official Templates Community Templates ✨ Payload Features Completely free and open-source Next.js native, built to run inside your /app folder Use server components to extend Payload UI Query your database directly in server components, no need for REST / GraphQL Fully TypeScript with automatic types for your data Auth out of the box Versions and drafts Localization Block-based layout builder Customizable React admin Lexical rich text editor Conditional field logic Extremely granular Access Control Document and field-level hooks for every action Payload provides Intensely fast API Highly secure thanks to HTTP-only cookies, CSRF protection, and more Request Feature 🗒️ Documentation Check out the Payload website to find in-depth documentation for everything that Payload offers. Migrating from v2 to v3? Check out the 3.0 Migration Guide on how to do it. 🙋 Contributing If you want to add contributions to this repository, please follow the instructions in contributing.md . 📚 Examples The Examples Directory is a great resource for learning how to setup Payload in a variety of different ways, but you can also find great examples in our blog and throughout our social media. If you'd like to run the examples, you can use create-payload-app to create a project from one: npx create-payload-app --example example_name You can see more examples at: Examples Directory Payload Blog Payload YouTube 🔌 Plugins Payload is highly extensible and allows you to install or distribute plugins that add or remove functionality. There are both officially-supported and community-supported plugins available. If you maintain your own plugin, consider adding the payload-plugin topic to your GitHub repository for others to find. Official Plugins Community Plugins 🚨 Need help? There are lots of good conversations and resources in our Github Discussions board and our Discord Server. If you're struggling with something, chances are, someone's already solved what you're up against. 👇 GitHub Discussions GitHub Issues Discord Community Help ⭐ Like what we're doing? Give us a star 👏 Thanks to all our contributors
FreeLinux
cal.diy logo
cal.diy is a free, open-source alternative to Calendly . Warning Use at your own risk. Cal.diy is the open source community edition of Cal.com and it is intended for users who want to self-host their own Cal.diy instance. It is strictly recommended for personal, non-production use. Please review all installation and configuration steps carefully. Self-hosting requires advanced knowledge of server administration, database management, and securing sensitive data. Proceed only if you are comfortable with these responsibilities. Tip For any commercial and enterprise-ready scheduling infrastructure, use Cal.com, not Cal.diy; hosted by us or get invited to on-prem enterprise access here: https://cal.com/sales Cal.diy The community-driven, open-source scheduling platform. GitHub Issues · Contributing About Cal.diy Cal.diy is the community-driven, fully open-source scheduling platform — a fork of Cal.com with all enterprise/commercial code removed. Cal.diy is 100% MIT-licensed with no proprietary "Enterprise Edition" features. It's designed for individuals and self-hosters who want full control over their scheduling infrastructure without any commercial dependencies. What's different from Cal.com? No enterprise features — Teams, Organizations, Insights, Workflows, SSO/SAML, and other EE-only features have been removed No license key required — Everything works out of the box, no Cal.com account or license needed 100% open source — The entire codebase is licensed under MIT, no "Open Core" split Community-maintained — Contributions are welcome and go directly into this project (see CONTRIBUTING.md ) Note: Cal.diy is a self-hosted project. There is no hosted/managed version. You run it on your own infrastructure. Built With Next.js tRPC React.js Tailwind CSS Prisma.io Daily.co Getting Started To get a local copy up and running, please follow these simple steps. Prerequisites Here’s what you need to run Cal.diy. Node.js (Version: >=18.x) PostgreSQL (Version: >=13.x) Yarn (recommended) If you want to enable any of the available integrations, you may want to obtain additional credentials for each one. More details on this can be found below under the integrations section . Development Setup Clone the repo (or fork https://github.com/calcom/cal.diy/fork ) git clone https://github.com/calcom/cal.diy.git If you are on Windows, run the following command in Git Bash with admin privileges: git clone -c core.symlinks=true https://github.com/calcom/cal.diy.git Go to the project folder cd cal.diy Install packages with yarn yarn Set up your .env file Duplicate .env.example to .env Use openssl rand -base64 32 to generate a key and add it under NEXTAUTH_SECRET in the .env file. Use openssl rand -base64 24 to generate a key and add it under CALENDSO_ENCRYPTION_KEY in the .env file. Windows users: Replace the packages/prisma/.env symlink with a real copy to avoid a Prisma error ( unexpected character / in variable name ): # Git Bash / WSL rm packages/prisma/.env && cp .env packages/prisma/.env Set up Node If your Node version does not meet the project's requirements as instructed by the docs, "nvm" (Node Version Manager) allows using Node at the version required by the project: nvm use You first might need to install the specific version and then use it: nvm install && nvm use You can install nvm from here . Quick start with yarn dx Requires Docker and Docker Compose to be installed Will start a local Postgres instance with a few test users - the credentials will be logged in the console yarn dx Default credentials created: Email Password Role [email protected] free Free user [email protected] pro Pro user [email protected] trial Trial user [email protected] ADMINadmin2022! Admin user [email protected] onboarding Onboarding incomplete You can use any of these credentials to sign in at http://localhost:3000 Tip : To view the full list of seeded users and their details, run yarn db-studio and visit http://localhost:5555 Development tip Add export NODE_OPTIONS="--max-old-space-size=16384" to your shell script to increase the memory limit for the node process. Alternatively, you can run this in your terminal before running the app. Replace 16384 with the amount of RAM you want to allocate to the node process. Add NEXT_PUBLIC_LOGGER_LEVEL={level} to your .env file to control the logging verbosity for all tRPC queries and mutations. Where {level} can be one of the following: 0 for silly 1 for trace 2 for debug 3 for info 4 for warn 5 for error 6 for fatal When you set NEXT_PUBLIC_LOGGER_LEVEL={level} in your .env file, it enables logging at that level and higher. Here's how it works: The logger will include all logs that are at the specified level or higher. For example: \ If you set NEXT_PUBLIC_LOGGER_LEVEL=2 , it will log from level 2 (debug) upwards, meaning levels 2 (debug), 3 (info), 4 (warn), 5 (error), and 6 (fatal) will be logged. \ If you set NEXT_PUBLIC_LOGGER_LEVEL=3 , it will log from level 3 (info) upwards, meaning levels 3 (info), 4 (warn), 5 (error), and 6 (fatal) will be logged, but level 2 (debug) and level 1 (trace) will be ignored. \ echo ' NEXT_PUBLIC_LOGGER_LEVEL=3 ' >> .env for Logger level to be set at info, for example. Gitpod Setup Click the button below to open this project in Gitpod. This will open a fully configured workspace in your browser with all the necessary dependencies already installed. Manual setup Configure environment variables in the .env file. Replace <user> , <pass> , <db-host> , and <db-port> with their applicable values DATABASE_URL='postgresql://<user>:<pass>@<db-host>:<db-port>' If you don't know how to configure the DATABASE_URL, then follow the steps here to create a quick local DB Download and install PostgreSQL locally (if you don't have it already). Create your own local db by executing createDB <DB name> Now open your psql shell with the DB you created: psql -h localhost -U postgres -d <DB name> Inside the psql shell execute \conninfo . And you will get the following info. Now extract all the info and add it to your DATABASE_URL. The url would look something like this postgresql://postgres:postgres@localhost:5432/Your-DB-Name . The port is configurable and does not have to be 5432. If you don't want to create a local DB. Then you can also consider using services like railway.app, Northflank or render. Setup postgres DB with railway.app Setup postgres DB with Northflank Setup postgres DB with render Copy and paste your DATABASE_URL from .env to .env.appStore . Set up the database using the Prisma schema (found in packages/prisma/schema.prisma ) In a development environment, run: yarn workspace @calcom/prisma db-migrate In a production environment, run: yarn workspace @calcom/prisma db-deploy Note for Windows/PowerShell users: If running the database deployment scripts fails with an error stating Environment variable not found: DATABASE_DIRECT_URL , Turbo might be failing to inject the root .env variables. You can bypass this by executing the commands directly from the prisma package directory in PowerShell: cd packages / prisma $ env: DATABASE_URL = " postgresql://postgres:YOUR_PASSWORD@localhost:5432/postgres " ; $ env: DATABASE_DIRECT_URL = " postgresql://postgres:YOUR_PASSWORD@localhost:5432/postgres " npx prisma db push cd .. / .. Run mailhog to view emails sent during development NOTE: Required when E2E_TEST_MAILHOG_ENABLED is "1" docker pull mailhog/mailhog docker run -d -p 8025:8025 -p 1025:1025 mailhog/mailhog Run (in development mode) yarn dev Setting up your first user Approach 1 Open Prisma Studio to look at or modify the database content: yarn db-studio Click on the User model to add a new user record. Fill out the fields email , username , password , and set metadata to empty {} (remembering to encrypt your password with BCrypt ) and click Save 1 Record to create your first user. New users are set on a TRIAL plan by default. You might want to adjust this behavior to your needs in the packages/prisma/schema.prisma file. Open a browser to http://localhost:3000 and login with your just created, first user. Approach 2 Seed the local db by running cd packages/prisma yarn db-seed The above command will populate the local db with dummy users. E2E-Testing Be sure to set the environment variable NEXTAUTH_URL to the correct value. If you are running locally, as the documentation within .env.example mentions, the value should be http://localhost:3000 . # In a terminal just run: yarn test-e2e # To open the last HTML report run: yarn playwright show-report test-results/reports/playwright-html-report Resolving issues E2E test browsers not installed Run npx playwright install to download test browsers and resolve the error below when running yarn test-e2e : Executable doesn't exist at /Users/alice/Library/Caches/ms-playwright/chromium-1048/chrome-mac/Chromium.app/Contents/MacOS/Chromium Upgrading from earlier versions Pull the current version: git pull Check if dependencies got added/updated/removed yarn Apply database migrations by running one of the following commands: In a development environment, run: yarn workspace @calcom/prisma db-migrate (This can clear your development database in some cases) In a production environment, run: yarn workspace @calcom/prisma db-deploy Check for .env variables changes yarn predev Start the server. In a development environment, just do: yarn dev For a production build, run for example: yarn build yarn start Enjoy the new version. Deployment Docker The Docker image can be found on DockerHub at https://hub.docker.com/r/calcom/cal.diy . Note for ARM Users : Use the {version}-arm suffix for pulling images. Example: docker pull calcom/cal.diy:v5.6.19-arm . Requirements Make sure you have docker & docker compose installed on the server / system. Both are installed by most docker utilities, including Docker Desktop and Rancher Desktop. Note: docker compose without the hyphen is now the primary method of using docker-compose, per the Docker documentation. Running Cal.diy with Docker Compose Clone the repository git clone --recursive https://github.com/calcom/cal.diy.git Change into the directory cd cal.diy Prepare your configuration: Rename .env.example to .env and then update .env cp .env.example .env Most configurations can be left as-is, but for configuration options see Important Run-time variables below. Required Secret Keys Before starting, you must generate secure values for NEXTAUTH_SECRET and CALENDSO_ENCRYPTION_KEY . Using the default secret placeholder in production is a security risk. Generate NEXTAUTH_SECRET (cookie encryption key): openssl rand -base64 32 Generate CALENDSO_ENCRYPTION_KEY (must be 32 bytes for AES256): openssl rand -base64 24 Update your .env file with these values: NEXTAUTH_SECRET = <your_generated_secret> CALENDSO_ENCRYPTION_KEY = <your_generated_key> Push Notifications (VAPID Keys) If you see an error like: Error: No key set vapidDetails.publicKey This means your environment variables for Web Push are missing. You must generate and set NEXT_PUBLIC_VAPID_PUBLIC_KEY and VAPID_PRIVATE_KEY . Generate them with: npx web-push generate-vapid-keys Then update your .env file: NEXT_PUBLIC_VAPID_PUBLIC_KEY = your_public_key_here VAPID_PRIVATE_KEY = your_private_key_here Do not commit real keys to .env.example — only placeholders. Update the appropriate values in your .env file, then proceed. (optional) Pre-Pull the images by running the following command: docker compose pull Start Cal.diy via docker compose To run the complete stack, which includes a local Postgres database, Cal.diy web app, and Prisma Studio: docker compose up -d To run Cal.diy web app and Prisma Studio against a remote database, ensure that DATABASE_URL is configured for an available database and run: docker compose up -d calcom studio To run only the Cal.diy web app, ensure that DATABASE_URL is configured for an available database and run: docker compose up -d calcom Note: to run in attached mode for debugging, remove -d from your desired run command. Open a browser to http://localhost:3000 , or your defined NEXT_PUBLIC_WEBAPP_URL. The first time you run Cal.diy, a setup wizard will initialize. Define your first user, and you're ready to go! Note for first-time setup (Calendar integration) : During the setup wizard, you may encounter a "Connect your Calendar" step that appears to be required. If you do not wish to connect a calendar at this time, you can skip this step by navigating directly to the dashboard at <NEXT_PUBLIC_WEBAPP_URL>/event-types . Calendar integrations can be added later from the Settings > Integrations page. Updating Cal.diy Stop the Cal.diy stack docker compose down Pull the latest changes docker compose pull Update env vars as necessary. Re-start the Cal.diy stack docker compose up -d Building from source with Docker Clone the repository git clone https://github.com/calcom/cal.diy.git Change into the directory cd cal.diy Rename .env.example to .env and then update .env For configuration options see Build-time variables below. Update the appropriate values in your .env file, then proceed. Build the Cal.diy docker image: Note: Due to application configuration requirements, an available database is currently required during the build process. a) If hosting elsewhere, configure the DATABASE_URL in the .env file, and skip the next step b) If a local or temporary database is required, start a local database via docker compose. docker compose up -d database Build Cal.diy via docker compose (DOCKER_BUILDKIT=0 must be provided to allow a network bridge to be used at build time. This requirement will be removed in the future) DOCKER_BUILDKIT=0 docker compose build calcom Start Cal.diy via docker compose To run the complete stack, which includes a local Postgres database, Cal.diy web app, and Prisma Studio: docker compose up -d To run Cal.diy web app and Prisma Studio against a remote database, ensure that DATABASE_URL is configured for an available database and run: docker compose up -d calcom studio To run only the Cal.diy web app, ensure that DATABASE_URL is configured for an available database and run: docker compose up -d calcom Note: to run in attached mode for debugging, remove -d from your desired run command. Open a browser to http://localhost:3000 , or your defined NEXT_PUBLIC_WEBAPP_URL. The first time you run Cal.diy, a setup wizard will initialize. Define your first user, and you're ready to go! Configuration Important Run-time variables These variables must also be provided at runtime Variable Description Required Default DATABASE_URL database url with credentials - if using a connection pooler, this setting should point there required postgresql://unicorn_user:magical_password@database:5432/calendso NEXT_PUBLIC_WEBAPP_URL Base URL of the site. NOTE: if this value differs from the value used at build-time, there will be a slight delay during container start (to update the statically built files). optional http://localhost:3000 NEXTAUTH_URL Location of the auth server. By default, this is the Cal.diy docker instance itself. optional {NEXT_PUBLIC_WEBAPP_URL}/api/auth NEXTAUTH_SECRET Cookie encryption key. Must match build variable. Generate with: openssl rand -base64 32 required secret CALENDSO_ENCRYPTION_KEY Authentication encryption key (32 bytes for AES256). Must match build variable. Generate with: openssl rand -base64 24 required secret Build-time variables If building the image yourself, these variables must be provided at the time of the docker build, and can be provided by updating the .env file. Currently, if you require changes to these variables, you must follow the instructions to build and publish your own image. Variable Description Required Default DATABASE_URL database url with credentials - if using a connection pooler, this setting should point there required postgresql://unicorn_user:magical_password@database:5432/calendso MAX_OLD_SPACE_SIZE Needed for Nodejs/NPM build options required 4096 NEXTAUTH_SECRET Cookie encryption key required secret CALENDSO_ENCRYPTION_KEY Authentication encryption key required secret NEXT_PUBLIC_WEBAPP_URL Base URL injected into static files optional http://localhost:3000 NEXT_PUBLIC_WEBSITE_TERMS_URL custom URL for terms and conditions website optional NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL custom URL for privacy policy website optional CALCOM_TELEMETRY_DISABLED Allow Cal.diy to collect anonymous usage data (set to 1 to disable) optional Troubleshooting SSL edge termination If running behind a load balancer which handles SSL certificates, you will need to add the environmental variable NODE_TLS_REJECT_UNAUTHORIZED=0 to prevent requests from being rejected. Only do this if you know what you are doing and trust the services/load-balancers directing traffic to your service. Failed to commit changes: Invalid 'prisma.user.create()' Certain versions may have trouble creating a user if the field metadata is empty. Using an empty json object {} as the field value should resolve this issue. Also, the id field will autoincrement, so you may also try leaving the value of id as empty. CLIENT_FETCH_ERROR If you experience this error, it may be the way the default Auth callback in the server is using the WEBAPP_URL as a base url. The container does not necessarily have access to the same DNS as your local machine, and therefore needs to be configured to resolve to itself. You may be able to correct this by configuring NEXTAUTH_URL=http://localhost:3000/api/auth , to help the backend loop back to itself. docker-calcom-1 | @calcom/web:start: [next-auth][error][CLIENT_FETCH_ERROR] docker-calcom-1 | @calcom/web:start: https://next-auth.js.org/errors#client_fetch_error request to http://testing.localhost:3000/api/auth/session failed, reason: getaddrinfo ENOTFOUND testing.localhost { docker-calcom-1 | @calcom/web:start: error: { docker-calcom-1 | @calcom/web:start: message: 'request to http://testing.localhost:3000/api/auth/session failed, reason: getaddrinfo ENOTFOUND testing.localhost', docker-calcom-1 | @calcom/web:start: stack: 'FetchError: request to http://testing.localhost:3000/api/auth/session failed, reason: getaddrinfo ENOTFOUND testing.localhost\n' + docker-calcom-1 | @calcom/web:start: ' at ClientRequest.<anonymous> (/calcom/node_modules/next/dist/compiled/node-fetch/index.js:1:65756)\n' + docker-calcom-1 | @calcom/web:start: ' at ClientRequest.emit (node:events:513:28)\n' + docker-calcom-1 | @calcom/web:start: ' at ClientRequest.emit (node:domain:489:12)\n' + docker-calcom-1 | @calcom/web:start: ' at Socket.socketErrorListener (node:_http_client:494:9)\n' + docker-calcom-1 | @calcom/web:start: ' at Socket.emit (node:events:513:28)\n' + docker-calcom-1 | @calcom/web:start: ' at Socket.emit (node:domain:489:12)\n' + docker-calcom-1 | @calcom/web:start: ' at emitErrorNT (node:internal/streams/destroy:157:8)\n' + docker-calcom-1 | @calcom/web:start: ' at emitErrorCloseNT (node:internal/streams/destroy:122:3)\n' + docker-calcom-1 | @calcom/web:start: ' at processTicksAndRejections (node:internal/process/task_queues:83:21)', docker-calcom-1 | @calcom/web:start: name: 'FetchError' docker-calcom-1 | @calcom/web:start: }, docker-calcom-1 | @calcom/web:start: url: 'http://testing.localhost:3000/api/auth/session', docker-calcom-1 | @calcom/web:start: message: 'request to http://testing.localhost:3000/api/auth/session failed, reason: getaddrinfo ENOTFOUND testing.localhost' docker-calcom-1 | @calcom/web:start: } Railway You can deploy Cal.diy on Railway . The team at Railway also have a detailed blog post on deploying on their platform. Northflank You can deploy Cal.diy on Northflank . The team at Northflank also have a detailed blog post on deploying on their platform. Vercel Currently Vercel Pro Plan is required to be able to Deploy this application with Vercel, due to limitations on the number of serverless functions on the free plan. Render Elestio License Cal.diy is fully open source, licensed under the MIT License . Unlike Cal.com's "Open Core" model, Cal.diy has no commercial/enterprise code . The entire codebase is available under the same open-source license. Enabling Content Security Policy Set CSP_POLICY="non-strict" env variable, which enables Strict CSP except for unsafe-inline in style-src . If you have custom changes in your instance, you may need to modify your code to make it CSP-compatible. Currently, strict CSP is enabled only on the login page. On other SSR pages, it is enabled in report-only mode to detect potential issues. It is not yet supported on SSG pages. Integrations Obtaining the Google API Credentials Open Google API Console . If you don't have a project in your Google Cloud subscription, you'll need to create one before proceeding further. Under Dashboard pane, select Enable APIS and Services. In the search box, type calendar and select the Google Calendar API search result. Enable the selected API. Next, go to the OAuth consent screen from the side pane. Select the app type (Internal or External) and enter the basic app details on the first page. In the second page on Scopes, select Add or Remove Scopes. Search for Calendar.event and select the scope with scope value .../auth/calendar.events , .../auth/calendar.readonly and select Update. In the third page (Test Users), add the Google account(s) you'll be using. Make sure the details are correct on the last page of the wizard and your consent screen will be configured. Now select Credentials from the side pane and then select Create Credentials. Select the OAuth Client ID option. Select Web Application as the Application Type. Under Authorized redirect URI's, select Add URI and then add the URI <Cal.diy URL>/api/integrations/googlecalendar/callback and <Cal.diy URL>/api/auth/callback/google replacing Cal.diy URL with the URI at which your application runs. The key will be created and you will be redirected back to the Credentials page. Select the newly generated client ID under OAuth 2.0 Client IDs. Select Download JSON. Copy the contents of this file and paste the entire JSON string in the .env file as the value for GOOGLE_API_CREDENTIALS key. Adding google calendar to Cal.diy App Store After adding Google credentials, you can now add the Google Calendar app to the App Store. You can repopulate the App Store by running cd packages/prisma yarn seed-app-store You will need to complete a few more steps to activate Google Calendar App. Make sure to complete section "Obtaining the Google API Credentials". After that do the following Add extra redirect URL <Cal.diy URL>/api/auth/callback/google Under 'OAuth consent screen', click "PUBLISH APP" Obtaining Microsoft Graph Client ID and Secret Open Azure App Registration and select New registration Name your application Set Who can use this application or access this API? to Accounts in any organizational directory (Any Azure AD directory - Multitenant) Set the Web redirect URI to <Cal.diy URL>/api/integrations/office365calendar/callback replacing Cal.diy URL with the URI at which your application runs. Use Application (client) ID as the MS_GRAPH_CLIENT_ID attribute value in .env Click Certificates & secrets create a new client secret and use the value as the MS_GRAPH_CLIENT_SECRET attribute Obtaining Zoom Client ID and Secret Open Zoom Marketplace and sign in with your Zoom account. On the upper right, click "Develop" => "Build App". Select "General App" , click "Create". Name your App. Choose "User-managed app" for "Select how the app is managed". De-select the option to publish the app on the Zoom App Marketplace, if asked. Now copy the Client ID and Client Secret to your .env file into the ZOOM_CLIENT_ID and ZOOM_CLIENT_SECRET fields. Set the "OAuth Redirect URL" under "OAuth Information" as <Cal.diy URL>/api/integrations/zoomvideo/callback replacing Cal.diy URL with the URI at which your application runs. Also add the redirect URL given above as an allow list URL and enable "Subdomain check". Make sure, it says "saved" below the form. You don't need to provide basic information about your app. Instead click on "Scopes" and then on "+ Add Scopes". On the left, click the category "Meeting" and check the scope meeting:write:meeting . click the category "User" and check the scope user:read:settings . Click "Done". You're good to go. Now you can easily add your Zoom integration in the Cal.diy settings. Obtaining Daily API Credentials Open Daily.co and create an account. From within your dashboard, go to the developers tab. Copy your API key. Now paste the API key to your .env file into the DAILY_API_KEY field in your .env file. If you have the Daily Scale Plan set the DAILY_SCALE_PLAN variable to true in order to use features like video recording. Obtaining Basecamp Client ID and Secret Visit the 37 Signals Integrations Dashboard and sign in. Register a new application by clicking the Register one now link. Fill in your company details. Select Basecamp 4 as the product to integrate with. Set the Redirect URL for OAuth <Cal.diy URL>/api/integrations/basecamp3/callback replacing Cal.diy URL with the URI at which your application runs. Click on done and copy the Client ID and secret into the BASECAMP3_CLIENT_ID and BASECAMP3_CLIENT_SECRET fields. Set the BASECAMP3_CLIENT_SECRET env variable to {your_domain} ({support_email}) . Obtaining HubSpot Client ID and Secret Open HubSpot Developer and sign into your account, or create a new one. From within the home of the Developer account page, go to "Manage apps". Click "Create legacy app" button top right and select public app. Fill in any information you want in the "App info" tab Go to tab "Auth" Now copy the Client ID and Client Secret to your .env file into the HUBSPOT_CLIENT_ID and HUBSPOT_CLIENT_SECRET fields. Set the Redirect URL for OAuth <Cal.diy URL>/api/integrations/hubspot/callback replacing Cal.diy URL with the URI at which your application runs. In the "Scopes" section at the bottom of the page, make sure you select "Read" and "Write" for scopes called crm.objects.contacts and crm.lists . Click the "Save" button at the bottom footer. You're good to go. Now you can see any booking in Cal.diy created as a meeting in HubSpot for your contacts. Obtaining Webex Client ID and Secret See Webex Readme Obtaining ZohoCRM Client ID and Secret Open Zoho API Console and sign into your account, or create a new one. From within the API console page, go to "Applications". Click "ADD CLIENT" button top right and select "Server-based Applications". Fill in any information you want in the "Client Details" tab Go to tab "Client Secret" tab. Now copy the Client ID and Client Secret to your .env file into the ZOHOCRM_CLIENT_ID and ZOHOCRM_CLIENT_SECRET fields. Set the Redirect URL for OAuth <Cal.diy URL>/api/integrations/zohocrm/callback replacing Cal.diy URL with the URI at which your application runs. In the "Settings" section check the "Multi-DC" option if you wish to use the same OAuth credentials for all data centers. Click the "Save"/ "UPDATE" button at the bottom footer. You're good to go. Now you can easily add your ZohoCRM integration in the Cal.diy settings. Obtaining Zoho Calendar Client ID and Secret Follow these steps Obtaining Zoho Bigin Client ID and Secret Follow these steps Obtaining Pipedrive Client ID and Secret Follow these steps Rate Limiting with Unkey Cal.diy uses Unkey for rate limiting. This is an optional feature and is not required for self-hosting. If you want to enable rate limiting: Sign up for an account at unkey.com Create a Root key with permissions for ratelimit.create_namespace and ratelimit.limit Copy the root key to your .env file into the UNKEY_ROOT_KEY field Note: If you don't configure Unkey, Cal.diy will work normally without rate limiting enabled. Contributing We welcome contributions! Whether it's fixing a typo, improving documentation, or building new features, your help makes Cal.diy better. Important: Cal.diy is a community fork. Contributions to this repo do not flow to Cal.com's production platform. See CONTRIBUTING.md for details. Check out our Contributing Guide for detailed steps. Please follow our coding standards and commit message conventions to keep the project consistent. Even small improvements matter — thank you for helping us grow! Good First Issues We have a list of help wanted that contain small features and bugs which have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process. Contributors Translations Don't code but still want to contribute? help translate Cal.diy into your language. Acknowledgements Cal.diy is built on the foundation created by Cal.com and the many contributors to the original project. Special thanks to: Vercel Next.js Day.js Tailwind CSS Prisma
FreeWindowsmacOSLinux

Find free open source alternatives of following paid software: