window通过wsl启动appsmith源码

news2024/11/27 4:13:58

window通过wsl启动appsmith前端后端

  • 前言
  • appsmith前端本地启动
    • WSL安装
    • 下载ubuntu
    • 升级wsl到wsl2
  • ubuntu安装环境
    • 环境要求
    • Ubuntu环境配置
    • node
    • 下载解压运行[源码](https://www.appsmith.com/)
    • 本地访问后端
  • appsmith后台本地启动
    • 启动mongo、redis
    • wsl ubuntu中启动后台试试
  • 流程总结
  • 最后
  • 其他问题及参考文档

前言

公司需要调研低代码平台,发现appsmith还可以,所以部署试试。主要参考官方教程,配合网上的教程解决一些问题

appsmith前端本地启动

WSL安装

参考官方文档
cmd管理员运行,执行 wsl --install
在这里插入图片描述
不知道是不是这个问题,去启用下
在这里插入图片描述
然后发现好了,总之wsl没问题就行

下载ubuntu

ubuntu下载地址
可以参考官方wsl linux发布的一些环境
在这里插入图片描述如果下载比较慢的话,可以试试手机上下载,就只有1G的大小
在这里插入图片描述
重命名为.zip,解压后
在这里插入图片描述
如图,解压这个文件,然后复制解压目录到自己想要安装的目录
在这里插入图片描述
双击ubuntu.exe,安装完成后,设置一个新用户的密码,非root用户。
在这里插入图片描述
这时候ubuntu就安装完了
然后设置root账户密码,此时需要输入之前自己设置用户的密码,成功后可以给root设置密码

sudo passwd root

在这里插入图片描述

升级wsl到wsl2

参考教程
我按照教程安装后,报错
在这里插入图片描述
到这勾上这个,我这倒是有用
在这里插入图片描述
把ubuntu设置为WSL2,如下图即可,输入bash可以进入ubuntu。另外命令行不支持复制,有点麻烦,最好下一个conEmu这种增强版,不然比较麻烦
在这里插入图片描述

ubuntu安装环境

环境要求

jdk17 maven3.6 node 6.14.0
在这里插入图片描述

Ubuntu环境配置

ubuntu设置国内镜像

node

官方文档说需要这个版本的nodejs
1. In the project’s root, run nvm use 16.14.0 or fnm use 16.14.0.
window中的目录被挂载到ubuntu中的/mnt目录下,所以可以去window下复制文件到ubuntu中。或者直接wget下载nodejs

解压,配置环境变量vim /etc/profile,然后source /etc/profile,每次重新打开窗口时没识别到就source /etc/profile

export NODE_HOME=/home/roger/node                 
export PATH=$NODE_HOME/bin:$PATH                  
export NODE_PATH=/home/roger/node/lib/node_modules

或则通过软连接的形式,记得安装yarn(npm install -g yarn)

ln -s   /home/roger/node/bin/node         /usr/local/bin/node
ln -s   /home/roger/node/bin/npm          /usr/local/bin/npm
ln -s /home/roger/node/lib/node_modules/yarn/bin/yarn /usr/local/bin/yarn

查询node -v npm -v没问题就行
另外给npm设置下镜像

下载解压运行源码

下载,解压,进入app/client目录

  1. 执行 npm install -g yarn
  2. 执行 yarn install
    在这里插入图片描述
    然后卡住在这
    在这里插入图片描述
    参考文档解决
    又卡住在这里插入图片描述
    那就多等下吧,不慌在这里插入图片描述
    我这个468s才完成.然后执行
 echo "127.0.0.1 dev.appsmith.com" | sudo tee -a /etc/hosts

在执行 yarn start,下图这样就算启动成功了,可能有时候内存不足会提示错误的,这时候关闭电脑上一些东西然后重新启动就行了。这个时候window访问http://127.0.0.1:3000是可以的,只是由于没有后台所以会报错而已,但是对于前端而言算是启动成功了
在这里插入图片描述
在这里插入图片描述

本地访问后端

我这块暂时没有直接访问后端,官方文档通过nginx转发来实现后端的访问,可以参考

appsmith后台本地启动

启动mongo、redis

  1. docker启动redis,或者自己随便启动个redis
docker run -p 6379:6379 --name appsmith-redis redis
  1. docker启动mongo,或者自己建一个mongo,关键是副本模式启动,–replSet appsmith-replica-set,和rs.initiate一致。进入容器,执行mongo进入mongo命令行,初始化节点,代码如下,ip换成自己的
docker run -p 27017:27017 --name appsmith-mongodb -e MONGO_INITDB_DATABASE=appsmith mongo --replSet appsmith-replica-set


rs.initiate({
        "_id" : "appsmith-replica-set",
        "members" : [
                {
                        "_id" : 0,
                        "host" : "自己的ip:27017"
                }
        ]
})

wsl ubuntu中启动后台试试

  1. 进入ubuntu配置环境,jdk17、maven3.6
export JAVA_HOME=/home/roger/jdk17
export JRE_HOME=$JAVA_HOME/jre
export M2_HOME=/home/roger/maven
export PATH=$M2_HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  1. 进入源码中app/server目录
  2. 设置.env文件cp envs/dev.env.example .env,改动redis和mongo的配置,副本名称保持设置rs.initiate一致
  3. 执行mvn clean compile
  4. 执行 ./build.sh -DskipTests
  5. 执行 ./scripts/start-dev-server.sh 启动成功

在这里插入图片描述

流程总结

  1. window启用wsl,安装ubuntu,更新到wsl2

  2. 新建文件夹,保存node、maven、jdk、源码等等(最好还是别直接放在window的某些目录下,wsl和window之间传输数据特别的慢)
    在这里插入图片描述

  3. 自己部署一个mongo(指定副本集名称)和redis

  4. 进入ubuntu配置环境,jdk17、node、maven

  5. 进入源码中app/server目录

  6. 设置.env文件cp envs/dev.env.example .env,改动redis和mongo的配置的地址ip

  7. 执行mvn clean compile

  8. 执行 ./build.sh -DskipTests

  9. 执行 ./scripts/start-dev-server.sh 启动

  10. 进入app/client 目录,执行yarn install,然后yarn start即可启动

最后

能够启动还是挺简单的,只是这个时候还没有访问到后端,下篇再写吧

其他问题及参考文档

官方安装说明
wsl内存不够打包失败
java.nio.file.AccessDeniedException时请chmod 777

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/402776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

缓存双写一致性之更新策略探讨

问题由来 数据redis和MySQL都要有一份,如何保证两边的一致性。 如果redis中有数据:需要和数据库中的值相同如果redis中没有数据:数据库中的值是最新值,且准备会写redis 缓存操作分类 自读缓存读写缓存: &#xff0…

关于vuex的使用

1.首先安装vuex npm install vuex --save 这时如果直接安装vuex,不指定版本的话,就会直接安装最新的vuex的版本。所以会出现报错。 报错就安装这个 npm install --save vuex3 2.创建文件夹, 有的时候安装好会自动创建vuex的文件夹 &#xf…

Python解题 - CSDN周赛第35期 - 不算题解的题解

本期四道题还是全考过,题解在网上也都搜得到。。。只好继续水一份不算题解的题解。 第一题:交换后的or 给定两组长度为n的二进制串,请问有多少种方法在第一个串中交换两个不同位置上的数字,使得这两个二进制串“或”的结果发生改…

案例01-修改数据redis没有同步更新

目录 一:背景介绍 二:思路&方案 三:过程 1.修改数据没有删除缓存 2.修改数据删除了缓存 四:总结 五:升华 一:背景介绍 redis中存储了关于一个课程下多个班级的信息。但是难免会在一个课程下添加新…

pandas 数据预处理+数据概览 处理技巧整理(持续更新版)

这篇文章主要是整理下使用pandas的一些技巧,因为经常不用它,这些指令忘得真的很快。前段时间在数模美赛中已经栽过跟头了,不希望以后遇到相关问题的时候还去网上查(主要是太杂了)。可能读者跟我有一样的问题&#xff0…

程序员养发神器:拒绝加班熬夜,告别秃头!

身为一个程序员,每天的工作就是写代码和吹牛逼,但是代码写多了,都没有多少让自己吹的时间了。摸鱼时间少是我们太菜了吗?可不要小瞧自己,可能是你没掌握方法。 我自己本身就是一个十分疯狂的工具收集者,收…

实在智能RPA数字员工竞技“宝罗杯”机器人创新总决赛,斩获佳绩!

近日,由中国钢铁工业协会和中国自动化学会指导,中国宝武钢铁集团有限公司主办、宝信软件承办的机器人行业领域的“宝罗杯”机器人创新大赛总决赛在中国宝武上海总部圆满收官。 此次大赛旨在充分凝聚社会智力,聚焦工业机器人的应用场景&#x…

es深度分页原因概念及处理方法

概述 当使用es分页查询的时候,如果查询的数据太靠后了,就会产生深度分页问题。 假设es有3个节点,node1,node2,node3 查询 limti 50000,50 假设请求的是node1,此时会在每个节点上抓出 50050条数据,然后在node1汇总排序&#xff0…

【设计模式】装饰器模式

装饰器模式 以生活中的场景来举例,一个蛋糕胚,给它涂上奶油就变成了奶油蛋糕,再加上巧克力和草莓,它就变成了巧克力草莓蛋糕。 像这样在不改变原有对象的基础之上,将功能附加到原始对象上的设计模式就称为装饰模式(D…

如何查看磁盘空间并挂载磁盘

df -h内容参数含义Filesystem文件系统Size分区大小1k-blocks单位是1KB(使用df查看)Used已用容量Avail还可用的容量Use%已用百分比Mounted on挂载点du -h查看某目录下占用空间最多的文件或目录。取前10个。需要先进入该目录下。du -cks * | sort -rn | head -n 10参数含义-s对每…

腾讯游戏,“迷失”自己

【潮汐商业评论/原创】“那个号我忘记密码了,你等我换个新号跟你玩”。这是Lynn《王者荣耀》双排队友常说的话。因为未成年,账号只有周末能玩,而且只有两小时。所以Lynn的这位网友,经常用家长的手机号注册游戏账号,但是…

Yarn调度器和调度算法

目录 1 先进先出调度器(FIFO) 2 容量调度器(Capacity Scheduler) 3 公平调度器(Fair Scheduler) 缺额: 公平调度器队列资源分配方式 公平调度器资源分配算法 Hadoop作业调度器主要有三种&…

分库分表原理

一、数据库瓶颈 会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。 IO瓶颈-分库和垂直分表…

探索测试的一些总结

1)探索性测试与脚本化测试的主要区别:1)探索性测试将更多更高的认知水平的工作放在测试执行,而脚本化测试则更关注测试设计;2)前者更强调测试活动的并行和相互反馈(学习、设计、执行与结果分析等),而后者的测试活动是相对串行的。 2)脚本化测…

Grafana系统的备份、恢复、迁移

Grafana系统的备份、恢复、迁移 1. 备份Grafana相关数据 首先先关闭Grafana服务(systemctl stop grafana-server),到目录下备份以下文件或者目录: 备份grafana目录中的grafana.db(一般情况下路径:/var/l…

电子技术——数字IC技术,逻辑电路和设计方法

电子技术——数字IC技术,逻辑电路和设计方法 在我们之前的学习中,我们学习了CMOS技术,然而CMOS技术并不是唯一的数字逻辑技术,因此,本节系统的介绍当今使用的数字技术和逻辑电路族。 数字IC技术和逻辑电路族 逻辑电…

k8s--services(微服务)

文章目录一、k8s网络通信service和iptables的关系二、services1.简介2.默认3.IPVS模式的service4.clusterip5.headless6.从外部访问service的三种方式(1)nodeport(2)loadbalancer7.metallb一、k8s网络通信 k8s通过CNI接口接入其他…

tf_nndistancen 安装

为了评估MMD,断断续续装了4天,踩了几乎所有的坑,终于装上了QAQ 1. 库链接:pointnet-autoencoder/tf_ops/nn_distance at master charlesq34/pointnet-autoencoder GitHub 2. 安装TensorFlow,我的环境是cuda 11.5 ,…

【Go】用Go在命令行输出好看的表格

用Go在命令行输出好看的表格前言正文生成Table表头设置插入行表格标题自动标号单元格合并列合并行合并样式设置居中设置数字自动高亮标红完整Demo代码结语前言 最近在写一些运维小工具,比如批量进行ping包的工具,实现不困难,反正就是ping&am…

java(Class 常用方法 获取Class对象六种方式 动态和静态加载 类加载流程)

ClassClass常用方法获取Class对象六种方式哪些类型有Class对象动态和静态加载类加载流程加载阶段连接阶段连接阶段-验证连接阶段-准备连接阶段-解析初始化阶段获取类结构信息Class常用方法 第一步:创建一个实体类 public class Car {public String brand "宝…