From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id yB6dF8LWTmTiHgAASxT56A (envelope-from ) for ; Sun, 30 Apr 2023 22:59:46 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id +MVrF8LWTmS7oQAAauVa8A (envelope-from ) for ; Sun, 30 Apr 2023 22:59:46 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 21456CBF8 for ; Sun, 30 Apr 2023 22:59:46 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ptE8Y-0006ZX-Dg; Sun, 30 Apr 2023 16:59:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ptE8V-0006ZB-KI for help-guix@gnu.org; Sun, 30 Apr 2023 16:59:11 -0400 Received: from mout-p-202.mailbox.org ([80.241.56.172]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1ptE8T-0006Pa-Oe for help-guix@gnu.org; Sun, 30 Apr 2023 16:59:11 -0400 Received: from smtp102.mailbox.org (smtp102.mailbox.org [IPv6:2001:67c:2050:b231:465::102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4Q8dxM1HVdz9sQY for ; Sun, 30 Apr 2023 22:59:03 +0200 (CEST) Date: Sun, 30 Apr 2023 22:59:02 +0200 (CEST) From: Raffael Mancini To: "help-guix@gnu.org" Message-ID: <363229649.1374751.1682888342312@office.mailbox.org> Subject: Packaging a django application MIME-Version: 1.0 X-Priority: 3 Importance: Normal X-Rspamd-Queue-Id: 4Q8dxM1HVdz9sQY Received-SPF: none client-ip=80.241.56.172; envelope-from=raffael@mancini.lu; helo=mout-p-202.mailbox.org X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Seal: i=1; s=key1; d=yhetil.org; t=1682888386; a=rsa-sha256; cv=none; b=iAuOZ2mcy+mQnE5/gsIo6G3IE4Mx+lsrXVAcQbmAqZP7pR296zVLfO7QNF55B1BD+UA1Fn fJ2YygkrZ3f6OhZqWBxPMnyqw/kWy6pU3sCt+AwKDu6/bADwUTGlAHtjPJSp0q0+Q01BRw p6EGK+HAfm6s2xFsOxXb7DkDp1VRxfDrBZJ+bBSldglF4CNstJz9o8ccT02x7ziIkXCsgo /FR0TXdTkMA48dMC4M7yVl/suytuBWKEwkNce/jxtvUiXrBKddBDI+PWT300PITts1qB/g 9/VDfyXFC0mxED4nS6hPGUF6+/LigPFAwAyx58pfcGjH4hwjZzhN/qIWdI6yOw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1682888386; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=uCqCSWkqW9ro/bwx6nqvlnCPfHx/ILhZyAfK6G3p0jE=; b=Lp3Hv2z2Z58F77fB9hTW/gLD7SsQNrCKy3ie7HzKv/WmwFw2Pnkpen/Z9TXe9jk4MZrx/t 01gjgQw432ElxHOHI90gBoGCxmjjYPmS/l2IYaWIsBVUCjGcxEioDHuXc1MrE4iI+Onbdx JX1VV6oxe1PJIB5U7GFuNBUpbM9si7AmSWDAzi2lB0jdXwnOgYUB1XVxSDAkI3eb7JB9ei yDCu3k2z7XoU6xuk/sal6dxCXl6qFtLT/qm1NYjWuUsFIv7RgSkVOtftb37j6I7tXp/Ep9 9r6/YmIiVPqSo0qAsItzxbqC/lpxa7YmlCcilMSJXpKquNyKDm8Ey7KfYM97+A== X-Migadu-Scanner: scn1.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -3.21 X-Spam-Score: -3.21 X-Migadu-Queue-Id: 21456CBF8 X-TUID: Ygbiry06dzDu Hello, I'm trying to deploy a django application on guix system using nginx as a reverse proxy and gunicorn as wsgi server. I have written the prototype of a gunicorn service based on the already packaged gunicorn by extending the shepherd-service-type. This new service seems to work to some extent and I will hopefully be able to submit it as a patch once it's ready. The end goal is a simple extensible django-application-service-type that you could extend in order to easily deploy any kind of django application. In order to serve my django application, would the best approach be to just create a regular guix package for it and reference it in the gunicorn configuration? What's a good method to translate a very long requirements.txt file to a guix package? Is there anyone who has done this already? How would you deal with the read/write part of the application like uploads or a sqlite3 database since the store items are read-only? I was also wondering if it's possible to somehow specify the guix profile used in the execution of gunicorn and "abuse" is as a pip replacement. I could thus iteratively create a profile with the needed dependencies to run my application and then configure the gunicorn daemon to use it. Thanks for any input on this! Raffael