Self Host Penpot deep dive | Penpot Community Hours #3 ๐Ÿ”— **Source:** [Self Host Penpot deep dive | Penpot Community Hours #3](https://www.youtube.com/watch?v=gMPvMakhvzE) > [!note]+ Document Notes > tags: [penpot, self-hosting, docker, open-source] > author: Penpot > source: YouTube > reference: [https://www.youtube.com/watch?v=gMPvMakhvzE] > date created: 2024-12-19 10:30 > > # ๐Ÿท๏ธ Title: Self Host Penpot deep dive | Penpot Community Hours #3 > <!-- deep-read:sections start --> ## ๐Ÿงฐ Action Inbox - [H1] Try Penpot Docker extension for one-click deployment โ€” 22:30 demo #docker - [H2] Evaluate self-hosting requirements vs SaaS โ€” infrastructure team assessment #security - [H3] Check GitHub repo for Penpot Docker extension customization โ€” open source contribution #development ## ๐Ÿงญ Table of Contents - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#๏ธ-notes) - [๐Ÿ“š References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#๏ธ-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items](#-action-items) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [โœ… Logical Validity](#-logical-validity) - [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ”— References - [Penpot Self-Hosting Guide](https://penpot.app/self-host) - [Docker Extension Hub](https://hub.docker.com/search?type=extension) ## ๐Ÿ“ Summary - Penpot Community Hours session covering self-hosting benefits, requirements, and Docker implementation - Self-hosting provides data ownership, regulatory compliance, and vendor independence - Technical requirements: 4 CPUs, 16GB RAM, 200GB storage supports thousands of users - New Docker extension enables one-click Penpot deployment and management - 100% year-over-year growth in self-hosting adoption for three consecutive years ## ๐Ÿ“– Main Content This session explores Penpot's self-hosting capabilities, addressing why organizations choose self-hosting over SaaS and how to implement it effectively. Yamila from Penpot's infrastructure team explains that self-hosting offers identical features to the SaaS version while providing complete data control and regulatory compliance options. The presentation covers key motivations including security requirements, regulatory compliance, data ownership, vendor lock-in avoidance, and future-proofing. Technical requirements are surprisingly modest - a server with 4 CPUs and 16GB RAM can support thousands of users, with 100GB each for database and assets storage. Ajit demonstrates a new Docker extension that simplifies deployment to a single click, eliminating the need for command-line Docker expertise. The extension provides service monitoring, log viewing, and management capabilities through a React-based UI. ## ๐Ÿ—’๏ธ Notes #### โฑ๏ธ [00:00:00](https://www.youtube.com/watch?v=gMPvMakhvzE?t=0) โ€” [H1] Welcome and introductions - Key idea: Third edition of Penpot Community Hours focusing on self-hosting - Evidence: "This is going to be the last time we are going to use zoom for these events. We love using all things open source." #### โฑ๏ธ [00:03:15](https://www.youtube.com/watch?v=gMPvMakhvzE?t=195) โ€” [H2] What is self-hosting? - Key idea: Everything is hosted somewhere, differences lie in data access and management control - Evidence: "The most significant difference lie in who can access the platform data" #### โฑ๏ธ [00:05:30](https://www.youtube.com/watch?v=gMPvMakhvzE?t=330) โ€” [H2] Self-hosting growth statistics - Key idea: Penpot experiencing 100% year-over-year growth in self-hosting for third consecutive year - Evidence: "Third consecutive year we're experiencing 100% growth... self-host is growing way faster than the SaaS" #### โฑ๏ธ [00:06:45](https://www.youtube.com/watch?v=gMPvMakhvzE?t=405) โ€” [H2] Why organizations choose self-hosting - Key idea: Security, regulation, ownership, vendor lock-in avoidance, and future-proofing drive adoption - Evidence: "A design application is at the heart of product decisions. Everything happens in the design application" #### โฑ๏ธ [00:09:20](https://www.youtube.com/watch?v=gMPvMakhvzE?t=560) โ€” [H2] Technical requirements overview - Key idea: Penpot makes extensive use of browsers, requiring powerful end-user computers - Evidence: "We recommend using the latest stable chrome" #### โฑ๏ธ [00:10:15](https://www.youtube.com/watch?v=gMPvMakhvzE?t=615) โ€” [H2] Server specifications - Key idea: Modest hardware requirements can support thousands of users - Evidence: "Four CPUs and 16 gigabytes of RAM are sufficient to support thousands of users" #### โฑ๏ธ [00:11:00](https://www.youtube.com/watch?v=gMPvMakhvzE?t=660) โ€” [H2] Storage recommendations - Key idea: Start with 200GB total storage for small to medium teams - Evidence: "100 gigabytes for database and another 100 gigabytes for assets will last for a very long time" #### โฑ๏ธ [00:12:30](https://www.youtube.com/watch?v=gMPvMakhvzE?t=750) โ€” [H1] Docker extension introduction - Key idea: New Docker extension enables one-click Penpot deployment - Evidence: "I built something called as penpot docker extension... self-host penpot with just one click" #### โฑ๏ธ [00:15:45](https://www.youtube.com/watch?v=gMPvMakhvzE?t=945) โ€” [H2] Modern development workflow challenges - Key idea: Context switching between multiple tools creates friction and drains focus - Evidence: "As a developer right you have 10 to 15 different tools... there is always a kind of friction" #### โฑ๏ธ [00:18:20](https://www.youtube.com/watch?v=gMPvMakhvzE?t=1100) โ€” [H2] Docker Extensions marketplace - Key idea: 113+ extensions available with Penpot achieving 400+ downloads in first 24 hours - Evidence: "Right now we have around close to 113 plus extension and penpot is one of them... already 400 plus downloads" #### โฑ๏ธ [00:22:30](https://www.youtube.com/watch?v=gMPvMakhvzE?t=1350) โ€” [H1] Live Docker extension demo - Key idea: Extension provides service management, monitoring, and log viewing through GUI - Evidence: "With just one single click I get a status all the six services up and running" #### โฑ๏ธ [00:25:15](https://www.youtube.com/watch?v=gMPvMakhvzE?t=1515) โ€” [H2] Extension benefits and architecture - Key idea: Open source extension built with React frontend and Go backend - Evidence: "This project is an open source project... you can always go ahead customize the UI" ## ๐Ÿ“š References - [Penpot Docker Extension GitHub](https://github.com/ajitrina/penpot-docker-extension) - [Docker Desktop Extensions](https://docs.docker.com/desktop/extensions/) - [Penpot Documentation](https://help.penpot.app/) ## ๐Ÿ—ฃ๏ธ Paraphrase - Self-hosting gives organizations complete control over their design data while maintaining the same features as SaaS - Technical requirements are surprisingly modest - a basic server can support thousands of users - A new Docker extension eliminates the complexity of self-hosting by providing one-click deployment and visual management ## ๐Ÿ“ฐ Newsletter The Penpot team unveiled an exciting development for WordPress designers and developers interested in self-hosting their design tools. A new Docker extension now makes deploying Penpot as simple as clicking a button, eliminating the traditional complexity of container orchestration. For WordPress agencies handling sensitive client designs, self-hosting offers crucial benefits: complete data ownership, regulatory compliance, and independence from vendor decisions. The technical requirements are refreshingly modest - a server with 4 CPUs and 16GB RAM can support thousands of users. The Docker extension provides real-time service monitoring, log viewing, and management capabilities through an intuitive interface. Built with React and Go, it's fully open source and customizable for specific organizational needs. Resources: [Penpot Self-Hosting](https://penpot.app/self-host), [Docker Desktop](https://www.docker.com/products/docker-desktop/), [Extension Source Code](https://github.com/ajitrina/penpot-docker-extension) ## โœ… Action Items #### DevRel - Developer advocacy: Create tutorials combining Penpot with WordPress development workflows - Education: Workshop series on design-to-development handoff using self-hosted tools - Developer experience: Document integration patterns between Penpot and WordPress themes - Developer marketing: Case studies highlighting agencies using self-hosted Penpot - Community management: Foster discussions around open source design tool adoption #### OSPO - Policy & Governance: Review self-hosting policies for design tool data retention - License Compliance: Audit Docker extension licensing and dependencies - Security Management: Establish security guidelines for self-hosted design platforms - Software Inventory: Add Penpot to approved self-hostable design tools - Developer Support: Training on container orchestration for design teams - Community Engagement: Support open source design tool development - Strategic Alignment: Metrics tracking self-hosting adoption vs SaaS usage #### Community - Maintainers: Governance templates for self-hosted service management - Contributors: Onboarding guides for Docker extension development - Sponsors: Impact reporting on open source design tool funding - Ecosystem: Cross-project coordination between design and development tools #### WordPress - Core: Performance impact analysis of design handoff workflows - Community: Meetup content on design-development collaboration tools - Training: Lesson plans covering design system implementation - Marketing: Campaigns highlighting WordPress design workflow improvements - Documentation: DevHub patterns for design-to-code workflows - Design: UX research on self-hosted design tool adoption - Hosting: Guidelines for hosting design tools alongside WordPress ## ๐Ÿงช Hypotheses - Self-hosted design tools increase design-development collaboration efficiency in WordPress agencies - Docker extensions reduce technical barriers to adopting open source design platforms - Organizations prioritizing data ownership will increasingly choose self-hosted design tools - Browser-heavy applications like Penpot will drive demand for more powerful end-user hardware ### ๐Ÿ“Š Methodology - Survey WordPress agencies on design tool preferences and data sensitivity concerns - Performance benchmarking comparing self-hosted vs SaaS design tool workflows - Usability testing of Docker extension deployment vs traditional container setup ### โ“ Questions - How does self-hosted Penpot performance compare to SaaS when integrated with WordPress development workflows? - What additional Docker extension features would most benefit WordPress agencies? - How do compliance requirements drive design tool hosting decisions in different industries? ### ๐Ÿ”ฎ Future Research - Integration patterns between self-hosted design tools and WordPress development environments - Security implications of design data ownership in client service scenarios - Scalability characteristics of containerized design platforms ### ๐Ÿ’ก Implications - Practice: Agencies can maintain complete control over client design data while using modern collaborative tools - Policy: Organizations need clear guidelines for design tool data governance and retention - Security: Self-hosting requires proper container security practices and regular updates - Education: Design teams need training on infrastructure concepts when adopting self-hosted tools - Funding: Investment in self-hosting infrastructure may offset long-term SaaS subscription costs ### ๐Ÿง  Learning Styles Assessment Reading level estimate: 12th grade #### ๐Ÿ‘€ Visual learners - Present: Architecture diagrams showing service relationships, GUI screenshots of Docker extension - Improve: Network topology diagrams, deployment workflow visualizations #### ๐Ÿ”Š Aural learners - Present: Video presentation with clear explanations and demonstrations - Improve: Audio-only version highlighting key technical concepts #### ๐Ÿ—ฃ๏ธ Verbal learners - Present: Clear definitions of self-hosting, Docker terminology, service descriptions - Improve: Glossary of container orchestration terms, comparison tables #### ๐Ÿงฉ Kinesthetic learners - Present: Step-by-step Docker extension installation, hands-on deployment demo - Improve: Interactive sandbox environment, configuration checklists #### ๐Ÿง  Logical learners - Present: Hardware requirement specifications, growth statistics, service dependencies - Improve: Decision matrices for self-hosting vs SaaS, cost-benefit analyses #### ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Social learners - Present: Community hours format with Q&A, collaborative discussion - Improve: Peer review processes for deployment configurations, community troubleshooting #### ๐Ÿง˜โ€โ™€๏ธ Solitary learners - Present: Documentation links, self-paced video content, individual deployment guides - Improve: Self-assessment checklists, personal reflection prompts on hosting decisions #### ๐ŸŒฟ Naturalistic learners - Present: Ecosystem thinking about tool integration and dependencies - Improve: Lifecycle analysis of design tool hosting decisions, sustainability metrics ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: Clear heading structure in presentation, descriptive interface elements - Improve: Alt text for architectural diagrams, screen reader testing of Docker extension #### Keyboard navigation - Present: Standard video controls, navigable interface elements - Improve: Keyboard shortcuts documentation, tab order optimization #### Contrast and readability - Present: High contrast presentation slides, readable code examples - Improve: Dark mode support in extension UI, font size customization #### Text resizing and reflow - Present: Responsive video player, scalable interface elements - Improve: Text scaling in extension interface, flexible layouts #### Media and captions - Present: Video content with clear audio, demonstration narration - Improve: Closed captions, audio descriptions of visual demonstrations #### Forms and interactions - Present: Simple click-based interactions in Docker extension - Improve: Form validation feedback, error state descriptions ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: International team representation, global community focus - Improve: Multi-language extension support, regional deployment examples #### Inclusive language - Present: Technical terms clearly defined, accessible explanations - Improve: Plain language alternatives for complex concepts, cultural context consideration #### Neurodiversity support - Present: Structured presentation format, clear section divisions - Improve: Attention management features, cognitive load reduction #### Representation - Present: Diverse international speaker backgrounds, inclusive community approach - Improve: Varied use case examples across different organization types #### Psychological safety - Present: Welcoming community hours format, encouraging questions - Improve: Clear escalation paths for technical support, inclusive participation guidelines ### โœ… Logical Validity #### Strong reasoning - Deductive strength: Strong technical requirements clearly lead to infrastructure recommendations - Inductive strength: Growth statistics effectively support adoption trend claims - Causal reasoning: Clear connection between data control needs and self-hosting benefits - Analogical strength: Effective comparison between SaaS and self-hosting trade-offs #### Fallacies - Appeal to numbers: Growth statistics used appropriately to demonstrate demand rather than quality - False dilemma: Presentation acknowledges hybrid hosting options between pure SaaS and self-hosting #### Tone of voice - Overall tone: Professional yet accessible, technical but not intimidating, community-focused with practical emphasis ### ๐Ÿ›ก๏ธ DARVO Analysis - Deny: No denial patterns present - Attack: No attacks on competing solutions or critics - Reverse victim/offender: Not applicable to technical presentation - Emotional cues and rhetoric: Positive, solution-focused language emphasizing empowerment and control ## ๐ŸŽฏ Conclusion Self-hosting Penpot provides organizations with complete control over their design data while maintaining feature parity with SaaS offerings. The new Docker extension dramatically simplifies deployment and management, making self-hosting accessible to teams without extensive container expertise. With modest hardware requirements supporting thousands of users, organizations can achieve data sovereignty, regulatory compliance, and vendor independence while using cutting-edge collaborative design tools. ## ๐Ÿงฑ Refactor Appendix ### ๐Ÿ“š Literature Split Pad --- ## Full Transcript [00:00] [music]<br>[00:07] Hi everyone, welcome to the third<br>[00:09] edition of Pampot Community Hours. We<br>[00:12] started doing these events to be even<br>[00:14] closer to our community so that we can<br>[00:16] have relaxed Q&A sessions, talk about<br>[00:19] all things Pampod, future, past, uh<br>[00:21] what's coming. But we decided to do it<br>[00:24] with a set agenda so that you know all<br>[00:26] the conversations have some insights. uh<br>[00:29] we decided to do a little bit of a deep<br>[00:31] dive on self host cover what really that<br>[00:34] means. This is going to be the last time<br>[00:37] we are going to use zoom for these<br>[00:39] events. Um because you know the pampot<br>[00:41] way we love using all things open<br>[00:43] source. Uh so we will be transferring to<br>[00:47] Jity. We finally uh believe that it<br>[00:50] meets our needs and um so yeah just with<br>[00:53] that little disclaimer let's get to know<br>[00:55] our speakers joining. So for those of<br>[00:57] you that don't know me, I'm Medat. Uh<br>[00:59] I'm the community and events lead here<br>[01:01] at Pampot. Joining me today, we have<br>[01:03] Yama. She's from the infrastructure team<br>[01:06] at Pampot. Hey Yama.<br>[01:09] >> Hi there.<br>[01:10] >> And we have Docker's Devil Superstar<br>[01:13] Ajit joining us as well. Hello.<br>[01:16] >> Hello everyone.<br>[01:17] >> And with that I think um we can get<br>[01:20] started. Yummy to you. uh first off uh<br>[01:24] let us know uh a bit about yourself and<br>[01:26] then uh I will ask the burning question<br>[01:29] of what really is self-hosted. So yummy<br>[01:33] the stage is yours.<br>[01:35] >> Okay so thank you m um hi there everyone<br>[01:39] my name is Jamila and I am part of the<br>[01:41] infrastructure team at Galos. Um in my<br>[01:44] younger years like a century ago I<br>[01:48] earned a degree in literary theory and<br>[01:50] later completed a vocational training in<br>[01:52] web development. Um by creatively<br>[01:56] combining both backgrounds I spent a few<br>[01:58] years uh working with natural language<br>[02:01] processing. Uh but uh at some point I<br>[02:04] jumped into developing open source. Then<br>[02:07] uh we founded calos and for during 10<br>[02:10] years I was working as a back-end<br>[02:12] developer several consulting projects uh<br>[02:14] for different uh clients and most<br>[02:17] recently I joined the infrastructure<br>[02:19] team at calos where we are responsible<br>[02:22] for making pimpot available to everyone<br>[02:25] both as a sas and as a self-host<br>[02:27] platform. I also been involved in<br>[02:29] several communities for many years<br>[02:31] particularly the Python Spain community<br>[02:34] and several pilates groups and I am very<br>[02:36] happy to be here with you.<br>[02:37] >> Thank you. I love the uh literary<br>[02:40] theory. Uh and then I will make sure no<br>[02:44] one quotes you on century ago uh<br>[02:46] notation and of course how casually<br>[02:49] somehow I ended up in open source. Um<br>[02:52] we've all been there. Uh but enough to<br>[02:54] chat. Uh let us know more about South.<br>[02:57] So um the first important thing uh to<br>[03:00] keep in mind is that everything is<br>[03:02] hosted somewhere and in terms of service<br>[03:05] capacity there are no fundamental<br>[03:07] differences when choosing where to host<br>[03:09] a platform. Um for pimpot there are no<br>[03:12] differences even in features<br>[03:14] availability. you can install uh<br>[03:17] self-hosted or you can use the SAS and<br>[03:19] you will be uh experiencing the same uh<br>[03:23] amazing platform the same platform um<br>[03:26] the most significant difference lie in<br>[03:29] who can access the platform data in an<br>[03:32] externally managed platform we are<br>[03:34] talking about the SAS uh the product<br>[03:36] creator/ owner is responsible for<br>[03:39] hardware maintenance service<br>[03:42] availability and data recovery in case<br>[03:44] of um an incident. At the other extreme,<br>[03:47] we have um these 100% internal<br>[03:51] management like self-hosted<br>[03:54] uh where all hardware infrastructure or<br>[03:57] even disaster recovery decisions belong<br>[03:59] to the team deploying the product.<br>[04:02] Um then furthermore there are<br>[04:05] intermediate options between these two<br>[04:07] extrains such having a private cloud<br>[04:10] under an hybrid management with a<br>[04:12] provider or using even a general cloud<br>[04:15] like the ones we are familiar with. Um<br>[04:19] so depending on the scenario of uh<br>[04:22] organizations uh we will have different<br>[04:24] options uh regarding data access and<br>[04:28] processing as well as platform security<br>[04:30] and management policies to self-host. We<br>[04:33] have this uh self-host your home that's<br>[04:37] uh that's um it's not only a chance you<br>[04:40] know that it it's happening. We know<br>[04:42] many designers that are using at their<br>[04:45] homes and happily using pimpot uh then<br>[04:49] for teams they are using private clouds<br>[04:52] or the general cloud or even the sus<br>[04:54] >> as you were mentioning a bit significant<br>[04:57] increasing amount in self-hosting pamph<br>[05:01] uh third consecutive year we're<br>[05:03] experiencing 100% growth I think uh<br>[05:06] yummy correct me if I'm wrong uh but<br>[05:08] yeah if pe if if people want to hear a<br>[05:11] bit more about those uh numbers uh they<br>[05:14] can check out the pampotest uh keynote<br>[05:16] from Pablo and um yeah with that let's<br>[05:19] see why uh and with that Pablo just<br>[05:21] joined the event okay so um there are<br>[05:26] many reasons uh for our organization to<br>[05:29] large or small uh to seek alternatives<br>[05:32] to the SAS and to name a few of them uh<br>[05:36] we have uh security on one hand because<br>[05:40] if your data is critical It's crucial to<br>[05:42] have strict control over this. Uh then<br>[05:46] we have uh regulation because the<br>[05:48] depending of the nature of your business<br>[05:51] or your product, you may have to comply<br>[05:53] with very specific regulations and in<br>[05:56] some cases SAS providers are certified<br>[05:59] under various regulations. But even so,<br>[06:02] uh some companies need to comply with<br>[06:04] the most restrictive scenario and to do<br>[06:06] so they have to host their tools.<br>[06:10] uh ownership. It's another reason that<br>[06:13] uh people, teams and organizations uh<br>[06:16] look to host uh the tools um because<br>[06:19] regardless of the criticality of their<br>[06:21] data you handle, it can be important or<br>[06:24] even strategic<br>[06:26] uh to self-host uh the data and the<br>[06:30] tools it manages. To truly own a data<br>[06:32] set, it's important to be able to sell<br>[06:34] host<br>[06:36] uh the files and the tool managing this<br>[06:39] uh data should be using open standards<br>[06:42] and open source formats. Um vendor<br>[06:46] locking is a long-standing problem in<br>[06:49] the software industry and in the past<br>[06:52] years uh it's now a great deal of a<br>[06:55] there is a great deal of awareness uh<br>[06:57] because we have been leaving some uh<br>[07:01] some moments uh where a company<br>[07:06] uh were possessing our data our critical<br>[07:09] data and we were were vendor locked<br>[07:12] which is u it's a them and then um like<br>[07:17] uh with a more time perspective<br>[07:21] uh self-hosting and open source platform<br>[07:24] uh gives you like future proof because<br>[07:27] um you will have uh lasting and robust<br>[07:31] ecosystem and you will not uh be<br>[07:34] impacted by the ups and downs of the<br>[07:36] industry of or of a specific company. So<br>[07:41] you will always have the the option to<br>[07:45] improve, to maintain or to migrate if<br>[07:47] you want to but it will be your<br>[07:49] decision.<br>[07:50] >> Yeah, I think um quite a lot uh can<br>[07:53] resonate with the idea of uh ownership<br>[07:56] and you know how the ownership of<br>[07:58] intellectual property and how design uh<br>[08:01] as a very critical intellectual property<br>[08:04] has been recognized especially in the<br>[08:07] past years. So I I I do strongly believe<br>[08:10] in the uh futurep proof part.<br>[08:13] >> The thing is that uh a design<br>[08:16] application is at the heart of of a<br>[08:19] product decisions. Everything happens in<br>[08:21] the design application in design<br>[08:22] platform. Uh the past of a product<br>[08:25] present and the possible futures even<br>[08:27] those that will not see will not see the<br>[08:31] light uh but they were just an<br>[08:34] hypothesis. So all of these uh reasons<br>[08:36] to to self-host may resonate to many<br>[08:39] organizations because um it's not<br>[08:42] something it could be critical uh what<br>[08:44] is happening in your design application<br>[08:47] and this is the reason why penpot is<br>[08:49] experiencing great success in the<br>[08:51] self-hosted version uh both for a small<br>[08:55] and uh large organizations.<br>[08:58] uh as you mentioned earlier med this is<br>[09:01] the third consecutive year uh we are<br>[09:03] enjoying 100% growth in all areas uh for<br>[09:07] developers and of course designers for<br>[09:09] power users but also castful users and<br>[09:12] all this growth uh we are seeing that<br>[09:14] self-host is growing way faster than the<br>[09:16] SAS so there are people uh wanting to<br>[09:19] self-host and having security and having<br>[09:24] the and having the ownership and of<br>[09:27] course being future proof uh with their<br>[09:29] own tools.<br>[09:31] >> So then um how do we get started? What<br>[09:34] do I need? Um tell me let's get a bit<br>[09:37] techy.<br>[09:38] >> So um here you have like uh the entrance<br>[09:43] point to self-host. From that point you<br>[09:45] will be redirected to any any place you<br>[09:48] need to really self-host your uh your<br>[09:50] pimpot. Installing pimpot self-hosted is<br>[09:52] very simple and we follow common best<br>[09:55] practices. So the components involved in<br>[09:57] the deployment will be familiar for all<br>[10:00] of you. Uh pimpot consists of three<br>[10:02] services. Then ginex that serves a<br>[10:05] static file and handles application<br>[10:07] routing. Uh we call it the front end.<br>[10:10] And then the back end and exporter. On<br>[10:12] top of that you will need a posgress and<br>[10:14] a valky which is similar to a radius. So<br>[10:19] that's what what you will need. Um then<br>[10:22] uh regarding um hardware requirements,<br>[10:26] it's important to know that penot makes<br>[10:29] extensive use of the browser. So you<br>[10:32] need to ensure that you will have<br>[10:34] powerful enduser computers and then this<br>[10:37] uh end user computers to get the most<br>[10:39] out of pimpot we recommend using the<br>[10:42] latest stable uh chrome. Uh so once we<br>[10:45] have uh the best computers for our<br>[10:48] designers and developers and other<br>[10:51] stakeholders<br>[10:52] uh in the server side regarding the<br>[10:54] database sizing you can start with 100<br>[10:57] gigabytes and another 100 gigabytes for<br>[11:00] assets and this will last for a very<br>[11:03] long time for a small to mediumsiz team.<br>[11:08] Um and then you can escalate. Uh in any<br>[11:12] case, it's important to have scaling<br>[11:15] mechanisms in place so the platform<br>[11:17] success on your premises doesn't become<br>[11:20] a problem for your infrastructure team.<br>[11:22] Please be friends. Let's be friends with<br>[11:25] with everyone with all the teams. Um<br>[11:29] regarding this server, uh four CPUs and<br>[11:31] 16 gigabytes of RAM are sufficient to<br>[11:34] support thousands of users. So you can<br>[11:36] be as conservative as you need uh when<br>[11:39] allocating resources to the instance. Um<br>[11:42] on the software dependencies uh the only<br>[11:45] essential requirement to launch pimpot<br>[11:47] instance is having docker on the<br>[11:49] servers. Um on this topic I believe that<br>[11:53] aid uh is going to tell us a bit more.<br>[11:55] >> Yes absolutely. Uh thank you with that.<br>[11:59] Taking a look at how things will take<br>[12:02] shape in Docker with a little bit of a<br>[12:05] new twist on things. Uh I would like to<br>[12:08] welcome uh Ajit. Uh let's take a look at<br>[12:11] how pampot and docker uh looks together.<br>[12:15] The stage is yours.<br>[12:17] >> Thank you. So first of all thank you so<br>[12:19] much merit and yummy for inviting me to<br>[12:22] this you know the forum and uh you know<br>[12:25] ever since we you know discussed through<br>[12:27] in email I was so excited to learn about<br>[12:30] penpot and then the first thing which I<br>[12:32] saw was docker compose file and that<br>[12:35] kept me so much excited that I just went<br>[12:37] ahead and built something called as<br>[12:39] penpot docker extension and uh for the<br>[12:42] next uh I would say 10 minutes I'm going<br>[12:44] to show you like how you can self-host<br>[12:47] penpot with just one click. You don't<br>[12:49] really have to even go ahead and learn<br>[12:51] about all those docker terminologies.<br>[12:54] It's just that with one click you can<br>[12:56] bring up a self-hosting penport<br>[12:58] environment altogether. But before that<br>[13:01] a little about myself. I am working as a<br>[13:04] dev manager at Docker. I joined Docker<br>[13:07] around 3 years back as a full-time<br>[13:09] employee. Uh I have been part of this<br>[13:11] community for almost like 10 years now.<br>[13:13] Ever since the docker was just like one<br>[13:15] year old, I have written more than<br>[13:17] around 1500 plus blogs and uh right now<br>[13:21] I'm based out of Bangalore but my whole<br>[13:22] team sits in is scattered around US, UK<br>[13:26] and France and all of this thing. Um<br>[13:29] since I am based out of India so what I<br>[13:30] have done here is like you know grown<br>[13:33] the community and today if you see I<br>[13:35] have my own community called as<br>[13:37] collabnix as well as the docker<br>[13:38] Bangalore which has around 16,000<br>[13:41] people. We do meetups almost every<br>[13:44] month. These are like a in-person meetup<br>[13:45] which we do. I'm also part of the docker<br>[13:48] community leader. Community leaders are<br>[13:50] those individuals who conduct these<br>[13:52] conferences, those meetups and involve<br>[13:55] you know bring excitement around the<br>[13:57] community. So for in every meetup we try<br>[14:00] to come up with some kind of a new topic<br>[14:01] in order to keep this community excited.<br>[14:04] Also I work very closely with ARM. I am<br>[14:06] one of the 14 distingutor all across the<br>[14:09] globe. uh we we work very closely with<br>[14:12] the ARM team. We run containers on IoT<br>[14:14] and there are different kind of a use<br>[14:16] cases based on the ARM you know<br>[14:18] basically ARM is a big name right. So we<br>[14:21] just try to see like you know how to<br>[14:23] keep the community excited running these<br>[14:26] containers on IoT bringing up some AI<br>[14:28] specific workload how to run it and then<br>[14:31] we have ARM investors which are more<br>[14:34] than around 300 400 plus people and we<br>[14:36] work closely with them we collaborate<br>[14:38] with them and uh yeah if you if you want<br>[14:41] to follow you know especially my task<br>[14:43] I'm I'm very active in Twitter as well<br>[14:45] as all the social media platform you can<br>[14:47] just go ahead and you know reach out to<br>[14:50] Okay. Now u as I said right for the next<br>[14:53] 10 minutes I'm going to jump upon the<br>[14:56] penpod docker extension but I want to<br>[14:58] talk about why I built this right and<br>[15:00] that's the reason uh in the agenda I try<br>[15:02] to keep it very simple I will talk about<br>[15:04] all the model development workflow and<br>[15:06] the challenges which developer faces and<br>[15:09] now since we are not just talking about<br>[15:10] the developers we are talking about the<br>[15:11] designer we're talking about the ops<br>[15:13] team also right so what are those<br>[15:15] challenges then I will jump into like<br>[15:17] how doer is sol trying to solve that<br>[15:19] problem I will introduce something<br>[15:21] called as a penpoint docker extension<br>[15:23] which is basically integrating the third<br>[15:24] party tool into a docker desktop and<br>[15:26] then I will show you a quick demo on<br>[15:28] like within few seconds how you can<br>[15:30] bring uh penpot<br>[15:33] you can self-host on your laptop right<br>[15:37] so to get started let's talk about the<br>[15:39] modern development workflow and the<br>[15:40] challenges if you see here these<br>[15:42] particular slides talk about all the<br>[15:44] tangled you know complexity and you can<br>[15:47] see here that as a developer right Um we<br>[15:51] talked about the inner loop and the<br>[15:52] outer loop development side right. So<br>[15:54] any typical software development cycle<br>[15:57] start with the inner loop where<br>[15:58] developer writes the code uh test the<br>[16:00] code and then once the code is tested<br>[16:04] and it is bug free then what we do<br>[16:06] basically we go to it it basically<br>[16:07] leaves your laptop and get into the<br>[16:09] CI/CD platform we call it as an outer<br>[16:11] loop<br>[16:13] uh development workflow and when we talk<br>[16:15] about the inner loop development<br>[16:16] workflow right so we see that developers<br>[16:19] right they spend so much time in doing a<br>[16:22] context switching so I'm sure Like as a<br>[16:24] developer right you have 10 to 15<br>[16:27] different tools you know in terms of ids<br>[16:29] in terms of terminal in terms of<br>[16:31] database client and that is what we are<br>[16:32] talking about the microservices<br>[16:34] architecture. Now if you take an example<br>[16:36] of penpod right there are around six to<br>[16:38] seven different services which has to<br>[16:40] run in you know um<br>[16:43] in a sequence that you know your front<br>[16:45] end your back end your database your<br>[16:47] exporter has to come together and that's<br>[16:49] the beauty of docker compose. Now even<br>[16:52] though you are using a docker compose<br>[16:53] but at the same time when you start with<br>[16:55] the development activity say you want to<br>[16:56] integrate some thirdarty tool into the<br>[16:58] pen port itself. Now again you have to<br>[17:01] context switch and when you do a context<br>[17:03] switch right there is always a kind of<br>[17:05] you know friction. So because this is a<br>[17:06] barrier in between your development<br>[17:08] design and ops team which creates the<br>[17:09] fiction and that drains your focus right<br>[17:12] coming back and and in a nutshell if I<br>[17:16] have to say like you're self-hosting any<br>[17:18] of the application in your local<br>[17:20] development it takes time right it is<br>[17:22] always difficult to replicate now<br>[17:23] imagine that say if you are not using a<br>[17:27] docker compose altogether right and if<br>[17:28] you are trying to deploy penpot now you<br>[17:31] might deploy so one of my colleague who<br>[17:34] has say an Ubuntu system running and<br>[17:36] then one the other one who is running a<br>[17:38] different version of Linux system if<br>[17:40] they are not using containers which<br>[17:42] means that they are going to spend say<br>[17:44] 20 to 30 minutes you need to figure it<br>[17:45] out like which services has to be<br>[17:47] installed and that's that's the beauty<br>[17:49] right where you know the containers come<br>[17:51] into the picture you just build it once<br>[17:53] and you run it everywhere be it a local<br>[17:56] machine be it on IoT devices be it on<br>[17:58] cloud everywhere right so your uh penpot<br>[18:03] um docker compos is going to work on all<br>[18:05] those platform but at the same time you<br>[18:07] are always juggling in between you know<br>[18:09] bringing up the you know in between the<br>[18:12] different ids in you know bringing up<br>[18:14] the database and then ensuring that your<br>[18:16] back end your your your back end has to<br>[18:20] come first before the front end right<br>[18:21] those kind of a dependencies<br>[18:24] so how Docker is trying to solve this<br>[18:25] problem so we introduced something<br>[18:27] called as a docker extension uh which is<br>[18:29] again a feature of docker desktop so as<br>[18:32] I said right if you are using in a<br>[18:33] personal node You can always go ahead<br>[18:35] download Docker desktop free of cost and<br>[18:38] you can start using it and you can see<br>[18:40] that docker desktop comes with a lot of<br>[18:42] those open-source tool which you can use<br>[18:44] it right uh for example you have a<br>[18:47] docker compose which is open source you<br>[18:49] don't really have to pay for it right<br>[18:50] you can download it you can contribute<br>[18:52] it right and there are couple of others<br>[18:54] like we have a file watch and all those<br>[18:57] features today which is available right<br>[18:59] and also in the AI space also we have<br>[19:01] MCP you know MCP gateway we a C agent<br>[19:05] those kind of a features are the<br>[19:06] open-source project. So as docker um you<br>[19:09] know promote those open source and try<br>[19:11] to you know and it's open for all the<br>[19:13] kind of a contribution. So one of the<br>[19:15] thing which we were thinking about it<br>[19:17] how to solve this problem and that's<br>[19:18] where your docker extension come into<br>[19:20] the picture. Now imagine that if I want<br>[19:23] to build my own observability stack say<br>[19:25] if I want to build my own testing tools<br>[19:26] right if I want to customize it and<br>[19:29] docker extension what it does it<br>[19:30] basically integrates with your workflow<br>[19:32] which means that today even if you are<br>[19:34] like say you are doing in the cloud<br>[19:35] development or cloud deployment or<br>[19:37] testing so you can always go back and<br>[19:40] try to use docker extension and with<br>[19:42] just one click you should be able to<br>[19:44] bring up your observability stack you<br>[19:46] can bring up your testing environment<br>[19:47] right [snorts] and uh the beauty is that<br>[19:50] we have an SDK which means that you can<br>[19:52] build your front end in react and the<br>[19:54] back end in go and bring up those<br>[19:56] extension.<br>[19:58] Now these extension are basically<br>[20:00] available in the dockerhub. You can<br>[20:02] always go ahead download it and use it<br>[20:04] free of cost. You don't really have to<br>[20:05] pay anything because it is just like a<br>[20:08] freely available on that and right now<br>[20:10] we have around close to 113 plus<br>[20:12] extension and penpot is one of them. Uh<br>[20:15] I just I I would you know one one of the<br>[20:17] thing which I want to share is that I<br>[20:19] just pushed the pen pod like not even<br>[20:22] like 24 hours before and there has been<br>[20:24] already 400 plus downloads. So this is<br>[20:26] really great and I hope that you guys<br>[20:29] will also like it. But uh to just give<br>[20:32] you an idea about how does it look like.<br>[20:34] So if I click on hub.docker.com<br>[20:37] and if I try to filter in terms of<br>[20:39] extension you can see here there are<br>[20:41] around 113 plus extensions. And if I try<br>[20:44] to see like which are the recently<br>[20:46] updated you can see here that you know<br>[20:49] uh okay so recently updated I can I can<br>[20:52] see that there are couple of them and<br>[20:54] penpot is one of them and as I said<br>[20:55] right we already have uh around 454 plus<br>[21:00] downloads right and it is just like you<br>[21:02] know just not even more than 30 hours<br>[21:06] right and u and and and and that is the<br>[21:09] reason like the community if the<br>[21:10] community is excited definitely there<br>[21:12] are so many things to<br>[21:13] Now in one way if you have to understand<br>[21:15] the extension it basically it helps you<br>[21:18] in you know managing the logs we have a<br>[21:20] log explorer extension where you can<br>[21:22] just click on it and you can see all the<br>[21:23] logs. Um the reason why you are going to<br>[21:26] save a lot of your time is because when<br>[21:28] you look at those uh you know services<br>[21:30] which panod runs there are around six<br>[21:32] different services and if I if I have to<br>[21:34] troubleshoot it or debug it I need to go<br>[21:37] to each of these log and see it right<br>[21:38] now with the extension you don't really<br>[21:40] have to do that okay and I in in a in a<br>[21:43] in a little while I will show you how it<br>[21:45] works but the whole idea of extension is<br>[21:47] that I can manage logs I can visualize<br>[21:49] the disk uses I can back up the volumes<br>[21:51] I can connect to the tn nets I can do<br>[21:52] all those cloud development deploy<br>[21:54] deployment tools, tools like open shift<br>[21:56] can be installed just with one click.<br>[21:58] It's like a platform as a service<br>[22:00] environment, right? And the same thing<br>[22:02] applies for the penport right and and<br>[22:04] this is what I was you know trying to<br>[22:07] do. It was just like two weeks back I<br>[22:09] was with the penport team with med yam<br>[22:11] and I was talking about okay let's build<br>[22:13] something exciting where as a developer<br>[22:16] I don't really have to worry about you<br>[22:19] know and it should not consume time for<br>[22:22] me to self-host can it be done with a<br>[22:24] single click because at the end of the<br>[22:25] day it is this like the bunch of<br>[22:27] services coming together right so one of<br>[22:29] the question which came to my mind is<br>[22:30] like what if you could manage a complete<br>[22:33] opensource design and prototype platform<br>[22:36] with the same simp simplicity as a<br>[22:39] container where I don't really have to<br>[22:41] even understand what is docker compose<br>[22:43] or what are the services what are the<br>[22:45] sequence of services that has to come<br>[22:47] right because when you have a front end<br>[22:48] backend database there is a sequence<br>[22:50] which need to be followed even though<br>[22:52] compose takes care of that but imagine<br>[22:54] that if you are completely new to docker<br>[22:56] right and if you want to get started<br>[22:57] with it and uh you don't really have to<br>[23:00] know all the specification know about<br>[23:02] the file and learn all those you know<br>[23:05] how how it works right in the background<br>[23:07] ground [snorts] and this is where you<br>[23:08] know exactly the penpod docker extension<br>[23:10] come into the picture and this is a kind<br>[23:13] of a quick screenshot of how it look<br>[23:15] like it provides you the status you can<br>[23:17] start stop the services you can even see<br>[23:19] the ports logs and the health so it is<br>[23:23] more like a self-hosted penpot instance<br>[23:26] deploy and manage with a single click<br>[23:29] and<br>[23:31] now with this extension you get lot of<br>[23:34] benefits the first thing is oneclick<br>[23:35] deployment<br>[23:36] uh status monitoring you get a service<br>[23:38] management log sphere and quick access<br>[23:40] and let me tell you this project is an<br>[23:42] open source project it is basically in<br>[23:44] the GitHub you can always go ahead<br>[23:46] customize the UI in the way how you want<br>[23:49] it is just that you need to know a bit<br>[23:51] of react front end as well as the go<br>[23:54] back end right if you know these two<br>[23:56] languages right especially UX is more<br>[23:58] right it's just that you can customize<br>[24:01] it and you can have your own dashboard<br>[24:03] kind of a stuff and one thing let me<br>[24:05] tell you like right Now if you see a lot<br>[24:06] of people are doing a w coding right<br>[24:08] they are coming up with their own<br>[24:09] solution right you come up with an idea<br>[24:11] and you want to convert into the URL<br>[24:13] what you do you go to the any pick up<br>[24:14] any of the w coding and coming up with<br>[24:16] some kind of a UI right the same thing<br>[24:18] is happening here right instead of going<br>[24:20] to the terminal even running it um you<br>[24:23] know telling all those you know logs in<br>[24:25] order to debug and troubleshoot why the<br>[24:27] services are not coming up this is one<br>[24:29] of the easiest way and uh to just to<br>[24:32] highlight that you know penpot as I said<br>[24:34] right Again even though the extension is<br>[24:37] based on react and the back end is in go<br>[24:39] but it is not changing the overall<br>[24:41] architecture of benpod we still have the<br>[24:43] front end exporter valky which is based<br>[24:45] on you know the radius we have a back<br>[24:47] end postgress and mail catch and to show<br>[24:49] you quickly a demo of how it works say<br>[24:52] if I have a docker desktop here I can go<br>[24:55] to the dashboard and the one of the one<br>[24:57] of the thing which I want to update is<br>[24:58] like you know penpot is in docker<br>[25:01] extension marketplace which means that<br>[25:02] you don't even have to run any command<br>[25:04] to install all this extension it is<br>[25:06] already there. Okay. And you can see<br>[25:08] here that um uh I have hosted in in my<br>[25:12] own personal name space but I would be<br>[25:14] happy to put it in the pen pot if you<br>[25:16] know because this is something which is<br>[25:17] very recent and the only thing what you<br>[25:19] need to do is like say if I want to<br>[25:21] share this extension with my friend I<br>[25:23] can always go ahead and click on share<br>[25:24] and share it right it gives you a URL<br>[25:27] and uh if I want to deploy penport all I<br>[25:30] need to do is just click on open and say<br>[25:33] start. Now once you do this what happens<br>[25:36] that it brings up all the services here.<br>[25:39] Okay which means that I don't really<br>[25:40] have to even go ahead and use those curl<br>[25:42] command to download those compose file<br>[25:44] and ensuring that you know whether my<br>[25:46] system made with all this requirement or<br>[25:48] not all you need to do is if you have a<br>[25:50] Mac or you are you are on Windows or you<br>[25:53] are in Linux you just have to go ahead<br>[25:55] install the extension and it should be<br>[25:58] working. Uh one of the thing which I<br>[25:59] want to say that you know if you are<br>[26:01] using a Windows machine ensure that<br>[26:03] Linux um uh WSL is enabled so that you<br>[26:07] can run uh this extension on top of it.<br>[26:09] But again you need to choose a Linux<br>[26:11] container because in on Windows you have<br>[26:14] both the variants right one is Linux<br>[26:16] running a Linux container as well as<br>[26:17] Windows container ensure that you have a<br>[26:19] Linux container enabled on it. Now you<br>[26:22] can you can see here with just one<br>[26:24] single click I get a kind of a status<br>[26:26] all the six services up and running. I<br>[26:28] can see the pen port running on 9,01<br>[26:31] port. I can I have a mail catcher which<br>[26:33] runs on port 1080. Uh one of the thing<br>[26:37] which I majorly focus on right say if<br>[26:40] you are deploying because in the<br>[26:42] self-hosting right it is all about your<br>[26:43] self-control. you are controlling your<br>[26:45] infrastructure and you should not waste<br>[26:47] your time in bringing up the<br>[26:49] infrastructure right it should be very<br>[26:51] seamless and as a developer say if I<br>[26:53] want to get started with a panbot all I<br>[26:55] need to do is I need to log in and get<br>[26:57] started that's it I don't really have to<br>[26:59] worry about whether the infrastructure<br>[27:01] has come up or not ensuring that all the<br>[27:03] services are up or not so one of the<br>[27:05] thing which I have ensured that you know<br>[27:07] get you get a status of all the services<br>[27:09] the services name and I can even see say<br>[27:11] if the front end I want to see the logs<br>[27:13] I can just click on it and this will<br>[27:15] basically go ahead and uh load the logs<br>[27:18] because right now I haven't opened it.<br>[27:20] So let me go ahead and click on it and<br>[27:22] you can see here that I am able to log<br>[27:25] in. So since I have already logged in<br>[27:27] and uh in the past so that is the reason<br>[27:29] why you see that I am already logged in<br>[27:31] as in my account but it will ask you<br>[27:33] about the username for the first time<br>[27:35] you need to go ahead and create a pro<br>[27:37] your account and the project and all of<br>[27:38] this thing but once you log in right uh<br>[27:42] you will see that all those dashboard<br>[27:45] comes into the picture you can see the<br>[27:46] sources you can even I can go ahead and<br>[27:49] look at which version of penpot and my<br>[27:51] account information the community and<br>[27:53] contribution and as you say right just<br>[27:56] within a second I am able to get started<br>[27:59] with the pen pod right and if now if I<br>[28:01] click on it I can see that because I'm<br>[28:03] accessing the my front end right so<br>[28:05] that's why you see all those logs at the<br>[28:06] same time I can see all those backend<br>[28:09] logs and if I can troubleshoot if there<br>[28:11] is any kind of an issue I can go ahead<br>[28:13] and fix it and uh and yeah you save lot<br>[28:16] of your time and this is something you<br>[28:18] know and to just let you know that you<br>[28:20] know uh one of the thing which I want to<br>[28:22] mention here and I will quickly jump<br>[28:24] into it uh if you look at uh I was<br>[28:27] talking about this project like the<br>[28:28] extension again it is open source right<br>[28:30] now it is on GitHub if you go to<br>[28:32] Ajitrina/Penport<br>[28:34] docker extension you can see here that I<br>[28:36] have a docker compose which looks<br>[28:38] something like this which brings up<br>[28:40] penport but at the same time we have<br>[28:43] this penpot compose right uh which is<br>[28:46] which I haven't make any changes but<br>[28:48] imagine that if I want to change any<br>[28:50] kind of a dashboard or UI I can go back<br>[28:53] and make those changes is right. So the<br>[28:55] whole source code is here. Feel free to<br>[28:57] go ahead contribute to it. It has all<br>[29:00] the information how to build it from<br>[29:02] scratch and how to build it locally.<br>[29:05] What are those services? What are those<br>[29:06] configuration and feel free to go ahead<br>[29:09] and you know try it out. And I think<br>[29:12] with this<br>[29:14] um I'm done with my presentation. Thank<br>[29:16] you so much.<br>[29:18] [music]<br>[29:28] >> [music] <!-- deep-read:sections end --> ## ๐Ÿ“บ Video ![](https://www.youtube.com/watch?v=gMPvMakhvzE) --- # ๐Ÿ“„ Full Transcript *Auto-generated from YouTube captions ยท timestamps roughly every 30 seconds ยท [watch on YouTube](https://www.youtube.com/watch?v=gMPvMakhvzE)* **[00:00]** [music] Hi everyone, welcome to the third edition of Pampot Community Hours. We started doing these events to be even closer to our community so that we can have relaxed Q&A sessions, talk about all things Pampod, future, past, uh what's coming. But we decided to do it with a set agenda so that you know all the conversations have some insights. uh we decided to do a little bit of a deep **[00:31]** dive on self host cover what really that means. This is going to be the last time we are going to use zoom for these events. Um because you know the pampot way we love using all things open source. Uh so we will be transferring to Jity. We finally uh believe that it meets our needs and um so yeah just with that little disclaimer let's get to know our speakers joining. So for those of you that don't know me, I'm Medat. Uh I'm the community and events lead here at Pampot. Joining me today, we have **[01:03]** Yama. She's from the infrastructure team at Pampot. Hey Yama. >> Hi there. >> And we have Docker's Devil Superstar Ajit joining us as well. Hello. >> Hello everyone. >> And with that I think um we can get started. Yummy to you. uh first off uh let us know uh a bit about yourself and then uh I will ask the burning question of what really is self-hosted. So yummy the stage is yours. **[01:35]** >> Okay so thank you m um hi there everyone my name is Jamila and I am part of the infrastructure team at Galos. Um in my younger years like a century ago I earned a degree in literary theory and later completed a vocational training in web development. Um by creatively combining both backgrounds I spent a few years uh working with natural language processing. Uh but uh at some point I jumped into developing open source. Then **[02:07]** uh we founded calos and for during 10 years I was working as a back-end developer several consulting projects uh for different uh clients and most recently I joined the infrastructure team at calos where we are responsible for making pimpot available to everyone both as a sas and as a self-host platform. I also been involved in several communities for many years particularly the Python Spain community and several pilates groups and I am very happy to be here with you. **[02:37]** >> Thank you. I love the uh literary theory. Uh and then I will make sure no one quotes you on century ago uh notation and of course how casually somehow I ended up in open source. Um we've all been there. Uh but enough to chat. Uh let us know more about South. So um the first important thing uh to keep in mind is that everything is hosted somewhere and in terms of service capacity there are no fundamental differences when choosing where to host **[03:09]** a platform. Um for pimpot there are no differences even in features availability. you can install uh self-hosted or you can use the SAS and you will be uh experiencing the same uh amazing platform the same platform um the most significant difference lie in who can access the platform data in an externally managed platform we are talking about the SAS uh the product creator/ owner is responsible for **[03:39]** hardware maintenance service availability and data recovery in case of um an incident. At the other extreme, we have um these 100% internal management like self-hosted uh where all hardware infrastructure or even disaster recovery decisions belong to the team deploying the product. Um then furthermore there are intermediate options between these two extrains such having a private cloud **[04:10]** under an hybrid management with a provider or using even a general cloud like the ones we are familiar with. Um so depending on the scenario of uh organizations uh we will have different options uh regarding data access and processing as well as platform security and management policies to self-host. We have this uh self-host your home that's uh that's um it's not only a chance you know that it it's happening. We know **[04:42]** many designers that are using at their homes and happily using pimpot uh then for teams they are using private clouds or the general cloud or even the sus >> as you were mentioning a bit significant increasing amount in self-hosting pamph uh third consecutive year we're experiencing 100% growth I think uh yummy correct me if I'm wrong uh but yeah if pe if if people want to hear a bit more about those uh numbers uh they **[05:14]** can check out the pampotest uh keynote from Pablo and um yeah with that let's see why uh and with that Pablo just joined the event okay so um there are many reasons uh for our organization to large or small uh to seek alternatives to the SAS and to name a few of them uh we have uh security on one hand because if your data is critical It's crucial to have strict control over this. Uh then **[05:46]** we have uh regulation because the depending of the nature of your business or your product, you may have to comply with very specific regulations and in some cases SAS providers are certified under various regulations. But even so, uh some companies need to comply with the most restrictive scenario and to do so they have to host their tools. uh ownership. It's another reason that uh people, teams and organizations uh **[06:16]** look to host uh the tools um because regardless of the criticality of their data you handle, it can be important or even strategic uh to self-host uh the data and the tools it manages. To truly own a data set, it's important to be able to sell host uh the files and the tool managing this uh data should be using open standards and open source formats. Um vendor **[06:46]** locking is a long-standing problem in the software industry and in the past years uh it's now a great deal of a there is a great deal of awareness uh because we have been leaving some uh some moments uh where a company uh were possessing our data our critical data and we were were vendor locked which is u it's a them and then um like **[07:17]** uh with a more time perspective uh self-hosting and open source platform uh gives you like future proof because um you will have uh lasting and robust ecosystem and you will not uh be impacted by the ups and downs of the industry of or of a specific company. So you will always have the the option to improve, to maintain or to migrate if **[07:47]** you want to but it will be your decision. >> Yeah, I think um quite a lot uh can resonate with the idea of uh ownership and you know how the ownership of intellectual property and how design uh as a very critical intellectual property has been recognized especially in the past years. So I I I do strongly believe in the uh futurep proof part. >> The thing is that uh a design application is at the heart of of a **[08:19]** product decisions. Everything happens in the design application in design platform. Uh the past of a product present and the possible futures even those that will not see will not see the light uh but they were just an hypothesis. So all of these uh reasons to to self-host may resonate to many organizations because um it's not something it could be critical uh what is happening in your design application and this is the reason why penpot is **[08:49]** experiencing great success in the self-hosted version uh both for a small and uh large organizations. uh as you mentioned earlier med this is the third consecutive year uh we are enjoying 100% growth in all areas uh for developers and of course designers for power users but also castful users and all this growth uh we are seeing that self-host is growing way faster than the SAS so there are people uh wanting to **[09:19]** self-host and having security and having the and having the ownership and of course being future proof uh with their own tools. >> So then um how do we get started? What do I need? Um tell me let's get a bit techy. >> So um here you have like uh the entrance point to self-host. From that point you will be redirected to any any place you need to really self-host your uh your **[09:50]** pimpot. Installing pimpot self-hosted is very simple and we follow common best practices. So the components involved in the deployment will be familiar for all of you. Uh pimpot consists of three services. Then ginex that serves a static file and handles application routing. Uh we call it the front end. And then the back end and exporter. On top of that you will need a posgress and a valky which is similar to a radius. So that's what what you will need. Um then **[10:22]** uh regarding um hardware requirements, it's important to know that penot makes extensive use of the browser. So you need to ensure that you will have powerful enduser computers and then this uh end user computers to get the most out of pimpot we recommend using the latest stable uh chrome. Uh so once we have uh the best computers for our designers and developers and other stakeholders uh in the server side regarding the **[10:54]** database sizing you can start with 100 gigabytes and another 100 gigabytes for assets and this will last for a very long time for a small to mediumsiz team. Um and then you can escalate. Uh in any case, it's important to have scaling mechanisms in place so the platform success on your premises doesn't become a problem for your infrastructure team. Please be friends. Let's be friends with **[11:25]** with everyone with all the teams. Um regarding this server, uh four CPUs and 16 gigabytes of RAM are sufficient to support thousands of users. So you can be as conservative as you need uh when allocating resources to the instance. Um on the software dependencies uh the only essential requirement to launch pimpot instance is having docker on the servers. Um on this topic I believe that aid uh is going to tell us a bit more. **[11:55]** >> Yes absolutely. Uh thank you with that. Taking a look at how things will take shape in Docker with a little bit of a new twist on things. Uh I would like to welcome uh Ajit. Uh let's take a look at how pampot and docker uh looks together. The stage is yours. >> Thank you. So first of all thank you so much merit and yummy for inviting me to this you know the forum and uh you know ever since we you know discussed through **[12:27]** in email I was so excited to learn about penpot and then the first thing which I saw was docker compose file and that kept me so much excited that I just went ahead and built something called as penpot docker extension and uh for the next uh I would say 10 minutes I'm going to show you like how you can self-host penpot with just one click. You don't really have to even go ahead and learn about all those docker terminologies. It's just that with one click you can bring up a self-hosting penport **[12:58]** environment altogether. But before that a little about myself. I am working as a dev manager at Docker. I joined Docker around 3 years back as a full-time employee. Uh I have been part of this community for almost like 10 years now. Ever since the docker was just like one year old, I have written more than around 1500 plus blogs and uh right now I'm based out of Bangalore but my whole team sits in is scattered around US, UK and France and all of this thing. Um **[13:29]** since I am based out of India so what I have done here is like you know grown the community and today if you see I have my own community called as collabnix as well as the docker Bangalore which has around 16,000 people. We do meetups almost every month. These are like a in-person meetup which we do. I'm also part of the docker community leader. Community leaders are those individuals who conduct these conferences, those meetups and involve you know bring excitement around the community. So for in every meetup we try **[14:00]** to come up with some kind of a new topic in order to keep this community excited. Also I work very closely with ARM. I am one of the 14 distingutor all across the globe. uh we we work very closely with the ARM team. We run containers on IoT and there are different kind of a use cases based on the ARM you know basically ARM is a big name right. So we just try to see like you know how to keep the community excited running these containers on IoT bringing up some AI specific workload how to run it and then **[14:31]** we have ARM investors which are more than around 300 400 plus people and we work closely with them we collaborate with them and uh yeah if you if you want to follow you know especially my task I'm I'm very active in Twitter as well as all the social media platform you can just go ahead and you know reach out to Okay. Now u as I said right for the next 10 minutes I'm going to jump upon the penpod docker extension but I want to talk about why I built this right and that's the reason uh in the agenda I try **[15:02]** to keep it very simple I will talk about all the model development workflow and the challenges which developer faces and now since we are not just talking about the developers we are talking about the designer we're talking about the ops team also right so what are those challenges then I will jump into like how doer is sol trying to solve that problem I will introduce something called as a penpoint docker extension which is basically integrating the third party tool into a docker desktop and then I will show you a quick demo on like within few seconds how you can bring uh penpot **[15:33]** you can self-host on your laptop right so to get started let's talk about the modern development workflow and the challenges if you see here these particular slides talk about all the tangled you know complexity and you can see here that as a developer right Um we talked about the inner loop and the outer loop development side right. So any typical software development cycle start with the inner loop where developer writes the code uh test the code and then once the code is tested **[16:04]** and it is bug free then what we do basically we go to it it basically leaves your laptop and get into the CI/CD platform we call it as an outer loop uh development workflow and when we talk about the inner loop development workflow right so we see that developers right they spend so much time in doing a context switching so I'm sure Like as a developer right you have 10 to 15 different tools you know in terms of ids in terms of terminal in terms of database client and that is what we are talking about the microservices **[16:34]** architecture. Now if you take an example of penpod right there are around six to seven different services which has to run in you know um in a sequence that you know your front end your back end your database your exporter has to come together and that's the beauty of docker compose. Now even though you are using a docker compose but at the same time when you start with the development activity say you want to integrate some thirdarty tool into the pen port itself. Now again you have to context switch and when you do a context switch right there is always a kind of **[17:05]** you know friction. So because this is a barrier in between your development design and ops team which creates the fiction and that drains your focus right coming back and and in a nutshell if I have to say like you're self-hosting any of the application in your local development it takes time right it is always difficult to replicate now imagine that say if you are not using a docker compose altogether right and if you are trying to deploy penpot now you might deploy so one of my colleague who has say an Ubuntu system running and **[17:36]** then one the other one who is running a different version of Linux system if they are not using containers which means that they are going to spend say 20 to 30 minutes you need to figure it out like which services has to be installed and that's that's the beauty right where you know the containers come into the picture you just build it once and you run it everywhere be it a local machine be it on IoT devices be it on cloud everywhere right so your uh penpot um docker compos is going to work on all those platform but at the same time you **[18:07]** are always juggling in between you know bringing up the you know in between the different ids in you know bringing up the database and then ensuring that your back end your your your back end has to come first before the front end right those kind of a dependencies so how Docker is trying to solve this problem so we introduced something called as a docker extension uh which is again a feature of docker desktop so as I said right if you are using in a personal node You can always go ahead download Docker desktop free of cost and **[18:38]** you can start using it and you can see that docker desktop comes with a lot of those open-source tool which you can use it right uh for example you have a docker compose which is open source you don't really have to pay for it right you can download it you can contribute it right and there are couple of others like we have a file watch and all those features today which is available right and also in the AI space also we have MCP you know MCP gateway we a C agent those kind of a features are the open-source project. So as docker um you **[19:09]** know promote those open source and try to you know and it's open for all the kind of a contribution. So one of the thing which we were thinking about it how to solve this problem and that's where your docker extension come into the picture. Now imagine that if I want to build my own observability stack say if I want to build my own testing tools right if I want to customize it and docker extension what it does it basically integrates with your workflow which means that today even if you are like say you are doing in the cloud development or cloud deployment or testing so you can always go back and **[19:40]** try to use docker extension and with just one click you should be able to bring up your observability stack you can bring up your testing environment right [snorts] and uh the beauty is that we have an SDK which means that you can build your front end in react and the back end in go and bring up those extension. Now these extension are basically available in the dockerhub. You can always go ahead download it and use it free of cost. You don't really have to pay anything because it is just like a freely available on that and right now we have around close to 113 plus **[20:12]** extension and penpot is one of them. Uh I just I I would you know one one of the thing which I want to share is that I just pushed the pen pod like not even like 24 hours before and there has been already 400 plus downloads. So this is really great and I hope that you guys will also like it. But uh to just give you an idea about how does it look like. So if I click on hub.docker.com and if I try to filter in terms of extension you can see here there are around 113 plus extensions. And if I try **[20:44]** to see like which are the recently updated you can see here that you know uh okay so recently updated I can I can see that there are couple of them and penpot is one of them and as I said right we already have uh around 454 plus downloads right and it is just like you know just not even more than 30 hours right and u and and and and that is the reason like the community if the community is excited definitely there are so many things to Now in one way if you have to understand **[21:15]** the extension it basically it helps you in you know managing the logs we have a log explorer extension where you can just click on it and you can see all the logs. Um the reason why you are going to save a lot of your time is because when you look at those uh you know services which panod runs there are around six different services and if I if I have to troubleshoot it or debug it I need to go to each of these log and see it right now with the extension you don't really have to do that okay and I in in a in a in a little while I will show you how it works but the whole idea of extension is **[21:47]** that I can manage logs I can visualize the disk uses I can back up the volumes I can connect to the tn nets I can do all those cloud development deploy deployment tools, tools like open shift can be installed just with one click. It's like a platform as a service environment, right? And the same thing applies for the penport right and and this is what I was you know trying to do. It was just like two weeks back I was with the penport team with med yam and I was talking about okay let's build something exciting where as a developer I don't really have to worry about you **[22:19]** know and it should not consume time for me to self-host can it be done with a single click because at the end of the day it is this like the bunch of services coming together right so one of the question which came to my mind is like what if you could manage a complete opensource design and prototype platform with the same simp simplicity as a container where I don't really have to even understand what is docker compose or what are the services what are the sequence of services that has to come right because when you have a front end backend database there is a sequence **[22:50]** which need to be followed even though compose takes care of that but imagine that if you are completely new to docker right and if you want to get started with it and uh you don't really have to know all the specification know about the file and learn all those you know how how it works right in the background ground [snorts] and this is where you know exactly the penpod docker extension come into the picture and this is a kind of a quick screenshot of how it look like it provides you the status you can start stop the services you can even see the ports logs and the health so it is **[23:23]** more like a self-hosted penpot instance deploy and manage with a single click and now with this extension you get lot of benefits the first thing is oneclick deployment uh status monitoring you get a service management log sphere and quick access and let me tell you this project is an open source project it is basically in the GitHub you can always go ahead customize the UI in the way how you want it is just that you need to know a bit of react front end as well as the go **[23:54]** back end right if you know these two languages right especially UX is more right it's just that you can customize it and you can have your own dashboard kind of a stuff and one thing let me tell you like right Now if you see a lot of people are doing a w coding right they are coming up with their own solution right you come up with an idea and you want to convert into the URL what you do you go to the any pick up any of the w coding and coming up with some kind of a UI right the same thing is happening here right instead of going to the terminal even running it um you know telling all those you know logs in **[24:25]** order to debug and troubleshoot why the services are not coming up this is one of the easiest way and uh to just to highlight that you know penpot as I said right Again even though the extension is based on react and the back end is in go but it is not changing the overall architecture of benpod we still have the front end exporter valky which is based on you know the radius we have a back end postgress and mail catch and to show you quickly a demo of how it works say if I have a docker desktop here I can go to the dashboard and the one of the one **[24:57]** of the thing which I want to update is like you know penpot is in docker extension marketplace which means that you don't even have to run any command to install all this extension it is already there. Okay. And you can see here that um uh I have hosted in in my own personal name space but I would be happy to put it in the pen pot if you know because this is something which is very recent and the only thing what you need to do is like say if I want to share this extension with my friend I can always go ahead and click on share and share it right it gives you a URL **[25:27]** and uh if I want to deploy penport all I need to do is just click on open and say start. Now once you do this what happens that it brings up all the services here. Okay which means that I don't really have to even go ahead and use those curl command to download those compose file and ensuring that you know whether my system made with all this requirement or not all you need to do is if you have a Mac or you are you are on Windows or you are in Linux you just have to go ahead install the extension and it should be **[25:58]** working. Uh one of the thing which I want to say that you know if you are using a Windows machine ensure that Linux um uh WSL is enabled so that you can run uh this extension on top of it. But again you need to choose a Linux container because in on Windows you have both the variants right one is Linux running a Linux container as well as Windows container ensure that you have a Linux container enabled on it. Now you can you can see here with just one single click I get a kind of a status all the six services up and running. I **[26:28]** can see the pen port running on 9,01 port. I can I have a mail catcher which runs on port 1080. Uh one of the thing which I majorly focus on right say if you are deploying because in the self-hosting right it is all about your self-control. you are controlling your infrastructure and you should not waste your time in bringing up the infrastructure right it should be very seamless and as a developer say if I want to get started with a panbot all I need to do is I need to log in and get started that's it I don't really have to **[26:59]** worry about whether the infrastructure has come up or not ensuring that all the services are up or not so one of the thing which I have ensured that you know get you get a status of all the services the services name and I can even see say if the front end I want to see the logs I can just click on it and this will basically go ahead and uh load the logs because right now I haven't opened it. So let me go ahead and click on it and you can see here that I am able to log in. So since I have already logged in and uh in the past so that is the reason why you see that I am already logged in **[27:31]** as in my account but it will ask you about the username for the first time you need to go ahead and create a pro your account and the project and all of this thing but once you log in right uh you will see that all those dashboard comes into the picture you can see the sources you can even I can go ahead and look at which version of penpot and my account information the community and contribution and as you say right just within a second I am able to get started with the pen pod right and if now if I **[28:01]** click on it I can see that because I'm accessing the my front end right so that's why you see all those logs at the same time I can see all those backend logs and if I can troubleshoot if there is any kind of an issue I can go ahead and fix it and uh and yeah you save lot of your time and this is something you know and to just let you know that you know uh one of the thing which I want to mention here and I will quickly jump into it uh if you look at uh I was talking about this project like the extension again it is open source right now it is on GitHub if you go to **[28:32]** Ajitrina/Penport docker extension you can see here that I have a docker compose which looks something like this which brings up penport but at the same time we have this penpot compose right uh which is which I haven't make any changes but imagine that if I want to change any kind of a dashboard or UI I can go back and make those changes is right. So the whole source code is here. Feel free to go ahead contribute to it. It has all the information how to build it from scratch and how to build it locally. **[29:05]** What are those services? What are those configuration and feel free to go ahead and you know try it out. And I think with this um I'm done with my presentation. Thank you so much. [music] >> [music]